Практика работы с Telegram
Ошибки сессии Telegram: database is locked и AuthKeyUnregistered
Как различать занятый файл Telethon, отозванную авторизацию и предупреждение о session ID. Для каждого случая — следующий шаг без удаления единственной копии данных.

Короткий ответ#
database is locked у Telethon обычно означает конфликт доступа к SQLite-файлу сессии; AUTH_KEY_UNREGISTERED относится к незарегистрированному ключу авторизации. Это разные причины сбоя. Удаление файла или смена прокси без диагностики не являются универсальным исправлением.
Какой следующий шаг выбрать по сообщению об ошибке?#
| Наблюдение | Первое действие | Условие продолжения |
|---|---|---|
| database is locked | Найти свои процессы, использующие тот же файл | Один владелец файла или отдельная сессия для каждого клиента |
| AUTH_KEY_UNREGISTERED / SESSION_REVOKED | Сверить аккаунт и историю отзыва авторизации | Восстановленный штатным входом доступ владельца |
| wrong session ID | Проверить повторное использование сессии и соединения | Установлена причина; защита клиента сохранена |
После исправления повторите только нужную разрешённую операцию и запишите результат. Исчезновение сообщения ещё не доказывает, что исходная задача завершилась: проверьте её статус и выходные данные.
Данные для диагностики соберите в карточку ошибки; три законченных учебных разбора приведены ниже.
Сначала определите, что именно не работает#
Запишите название клиента, текст ошибки, время и действие перед сбоем. Файл SQLite, авторизация Telegram и сетевое соединение — разные уровни. Один общий совет «сменить прокси» не диагностирует все три.
Карточка ошибки: клиент и версия → путь к файлу без секретов → время → операция → точный код → параллельные процессы → что изменили → результат повторной проверки. Не публикуйте Session, AuthKey, код входа или пароль. Такой записи достаточно для сопоставления первого сбоя и проверки после исправления.
Telethon: database is locked#
В FAQ Telethon эта ошибка связана с одновременной работой клиентов с одним SQLite-файлом сессии. Проверьте другой процесс, консоль или второй экземпляр скрипта. Для двух клиентов используйте отдельные сессии. Разбор Telethon.
- Найдите, где запускается нужный клиент: рабочий скрипт, консоль, планировщик, сервис.
- Сверьте фактический путь Session у этих запусков. Одинаковые относительные имена могут указывать на одну папку.
- Завершите лишний принадлежащий вам экземпляр штатно. Не останавливайте незнакомые процессы на общем сервере.
- Повторите запуск одного клиента. Если требуется параллельная работа, создайте самостоятельную авторизацию для второго клиента.
Не удаляйте Session как первый шаг: это стирает локальные данные, но не объясняет, какой процесс держал файл.
AUTH_KEY_UNREGISTERED и SESSION_REVOKED#
Эти ответы относятся к авторизации. Первый сообщает, что ключ не зарегистрирован, второй — что сессия отозвана. Увеличение задержки или перестановка столбцов в JSON не восстанавливают авторизацию. Коды приведены в документации ошибок Telegram.
- Убедитесь, что сообщение пришло от нужного клиента и относится к правильному аккаунту.
- Проверьте, не завершалась ли эта сессия владельцем на другом устройстве.
- Если доступ действительно отозван, выполните штатную повторную авторизацию владельца. При отсутствии доступа к номеру сначала решается восстановление доступа.
- После входа повторно проверьте одну разрешённую операцию; остальные задания запускайте после проверки состояния.
Wrong session ID: почему не надо отключать проверку#
Telethon связывает предупреждение о неправильном session ID с защитой от повторного использования сессии. Возможные причины: одна сессия в нескольких местах, особенности прокси или нескольких соединений. Не отключайте проверку безопасности ради исчезновения сообщения. Пояснение разработчиков.
Проверьте историю запуска и сеть, затем воспроизведите сбой одним клиентом. Сообщения про слишком старый или новый ID дополнительно требуют проверки системного времени. Эти предупреждения отличаются от сообщения о блокировке аккаунта.
Где хранится Session и почему она «пропала»#
Telethon по умолчанию создаёт файл имя.session в рабочей папке, если не задан абсолютный путь. Запуск из другой папки может создать другой файл. StringSession — другое представление данных; его нельзя считать обычным путём. Форматы хранения Telethon.
Зафиксируйте путь в своей конфигурации и проверьте его перед переименованием. Для переноса сохраняйте совместимый формат и независимые резервные копии. Переименование расширения не конвертирует сессию другой библиотеки.
Где посмотреть активные сеансы и завершить ненужный#
Active Sessions — список подключений аккаунта. В официальном клиенте откройте Настройки → Устройства; в некоторых версиях раздел находится в настройках конфиденциальности и называется «Активные сеансы». Сверьте приложение, устройство и время активности.
- Выберите конкретный сеанс, который принадлежит вашему старому устройству или больше не нужен.
- Проверьте, что это не подключение, от которого зависит ваша текущая работа. Завершите выбранный сеанс штатной командой клиента.
- Для программы, использовавшей отозванную авторизацию, потребуется новый вход владельца. Удаление локального файла не заменяет завершение доступа на стороне Telegram.
Три разбора: наблюдение → действие → проверка
Ниже законченные учебные сценарии, а не записи клиентов или доказательство нового теста платформы. Скачать карточки JSON. Они показывают, какие данные позволяют сделать вывод и где его граница.
1. Два клиента открывают один файл
До изменения: два собственных процесса A и B используют один фактический путь, появляется database is locked. В сценарии лишний клиент штатно завершён. После изменения один оставшийся клиент успешно выполняет разрешённое чтение. Это подтверждает устранение конфликта в данном примере, но не завершение прежней бизнес-задачи.
2. Ключ не зарегистрирован
До изменения: получены 401 и AUTH_KEY_UNREGISTERED. В упражнении владелец выполняет штатный вход, затем чтение с новой авторизацией проходит. Проверяется восстановленный доступ; ожидание или смена IP сами по себе не являются доказательством исправления авторизации.
3. Запуск из другой папки
В конфигурации осталось относительное имя demo.session, но рабочая папка изменилась с DEMO-DIR-A на DEMO-DIR-B. Клиент просит новый вход. Сверка показывает разные пути; ошибки отзыва ключа не наблюдалось. По этим данным нельзя утверждать, что прежняя авторизация отозвана: сначала выясняют, какой собственный файл открыт.
Как оформить собственный результат
Зафиксируйте точный код, клиент и его версию, время, обезличенную метку файла, одно изменение и наблюдение после него. Если повторной проверки не было, итог — «исправление не проверено». Не публикуйте файл сессии, ключ или код входа. Предварительно сохраните свою резервную копию; чужие процессы не останавливайте.
Файловый конфликт и рабочая папка: FAQ Telethon и хранение сессий. Значение кода авторизации: Telegram API. Для ожидания FLOOD_WAIT нужен другой разбор.
Session ID, ID аккаунта и файл .session#
| Название | Где применяется |
|---|---|
| ID аккаунта Telecobra | Путь /api/accounts/ID |
| Telegram user ID | Идентификатор пользователя Telegram |
| session ID протокола | Параметр сеанса соединения |
| Файл .session | Данные авторизации клиента |
В поле идентификатора аккаунта для экспорта нельзя подставлять протокольный session ID. Если ошибка содержит wrong session ID, разбирайте соединение по инструкции выше; получение нового CSV или переименование JSON её не исправляет.
На чём основан разбор#
Основа разбора — указанные документы и явно обозначенные учебные примеры. Они не являются результатами клиентов; новый запуск задач в Telegram для этой редакции не проводился.
- Telethon: конфликт файла сессии — Причины SQLite-блокировки; не утверждение о блокировке аккаунта.
- Telegram: ошибки API — Коды авторизации и ожидания имеют разные значения.
Редактура структуры: . Упорядочены разделы и пояснения. Даты исходных снимков, примеров и функциональных проверок указаны отдельно.
Источники и документация#
Одна платформа · разные задачи
Подписка Telecobra
Соберите инструменты для работы с Telegram в одном кабинете. Сроки доступа, цены и условия — на странице подписки.
В этой инструкции описана только часть возможностей платформы. Полный список доступен в разделе функций.