Telethon мастерская
Telethon мастерская
@telethon_workshops_ubt

Ошибка в Telethon — это не баг в коде, а сигнал от MTProto: учимся читать его правильно

Ошибка в Telethon — это не баг в коде, а сигнал от MTProto: учимся читать его правильно

RPCError — это общий класс. Дальше важен конкретный код: FloodWait = пауза, PeerFlood = лимит на действия, AuthKeyUnregistered = сессия мертва, USER_DEACTIVATED = аккаунт больше не пригоден для работы. Не лечите все подряд перезапуском — сначала смотрите, на каком запросе упал клиент и какой объект вернул сервер.

Логи Telegram полезнее, если включать их на уровне метода, а не только на уровне «упал скрипт». Смотрите: send_message, join_channel, invite_to_channel, resolve_username. Если ошибка появляется после resolve, проблема в доступе к сущности; если после invite, ищите лимит или права; если падает до запроса — копайте сессию, прокси и авторизацию.

Отдельно проверяйте ChatWriteForbidden, ChannelPrivate, UserBannedInChannel и MsgIdInvalid. Первые три говорят про права и доступ, последний — про рассинхрон состояния клиента. В Telethon это часто выглядит как «ничего не происходит», хотя на стороне API уже есть отказ. Дебаг — наш лучший друг в борьбе с FloodWait.

Не гадайте по тексту исключения. Читайте тип RPC, контекст вызова и последовательность запросов: тогда станет видно, где ломается логика — в сущности, сессии, лимите или правах. Оптимизируем сессии, избегаем лимитов.
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.