Telegram-бот получает 409 Conflict по одной из двух причин: другая копия бота запрашивает у Telegram сообщения с тем же токеном или для бота задан вебхук, а ваш код использует polling. Получать сообщения бота Telegram позволяет только одному из них. Прочитайте конец строки в Console, чтобы понять, какой случай ваш, и действуйте так:
terminated by other getUpdates request: остановите другую копию бота (на компьютере, на старом хостинге или на другом сервере), затем перезапустите бота здесь.- Не можете найти другую копию? В @BotFather отправьте
/mybots, выберите своего бота, затем API Token, отзовите токен и вставьте новый на странице Бот, в разделе Telegram. can't use getUpdates method while webhook is active: нажмите Удалить вебхук на баннере (или Удалить вебхук в разделе Telegram), затем перезапустите бота.
На Telegram-боте PlayNHost панель сама читает консоль и показывает над ней баннер с причиной и кнопкой, которая её устраняет. Метка на странице Обзор показывает Не получает сообщения.
409: запущена другая копия вашего бота
Текст Telegram внутри ошибки вашей библиотеки:
Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
Как это выглядит в каждой библиотеке:
| Библиотека | Строка в консоли |
|---|---|
| python-telegram-bot | telegram.error.Conflict: Conflict: terminated by other getUpdates request; ... |
| aiogram 3 | Failed to fetch updates - TelegramConflictError: Telegram server says - Conflict: terminated by other getUpdates request; ... |
| pyTelegramBotAPI | A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by other getUpdates request; ... |
| grammY | GrammyError: Call to 'getUpdates' failed! (409: Conflict: terminated by other getUpdates request; ...) |
| Telegraf | TelegramError: 409: Conflict: terminated by other getUpdates request; ... |
Telegram отдаёт сообщения одной копии за раз, поэтому две копии постоянно вытесняют друг друга. python-telegram-bot, aiogram и pyTelegramBotAPI продолжают повторять попытки: ваш бот выглядит работающим, но пропускает сообщения или ничего не отвечает. grammY и Telegraf, наоборот, останавливаются с этой ошибкой.
Баннер сообщает Ваш бот работает ещё и в другом месте. Чтобы это исправить:
- Найдите другую копию и остановите её: окно терминала или скрипт на вашем компьютере, старый хостинг, откуда вы переехали (задача, которая работает постоянно, развёртывание или служба), либо второй сервер с тем же кодом.
- Нажмите Перезапустить здесь и следите за Console. Ошибка прекратится, когда ваш бот останется единственной копией.
- Если найти другую копию не удаётся, создайте новый токен, чтобы старый перестал работать везде: в @BotFather отправьте
/mybots, выберите своего бота, затем API Token и Revoke current token. - На странице Бот, в разделе Telegram, нажмите Заменить токен, вставьте новый токен и нажмите Сохранить токен. Панель сообщит: Бот продолжает использовать старый токен, пока не перезапустится. Нажмите Перезапустить сейчас.
Кнопка Заменить токен на баннере открывает тот же раздел. Старый токен перестаёт работать сразу, так что забытая копия больше не сможет читать сообщения вашего бота.

409: вебхук задан, а бот использует polling
Текст Telegram:
Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first
Вебхук говорит Telegram отправлять сообщения вашего бота на веб-адрес. Пока он задан, код, который использует polling (сам спрашивает у Telegram новые сообщения), получает эту ошибку. Обычно вебхук остаётся от старого хостинга, где бот работал через вебхук, или от кода, который когда-то вызывал setWebhook. На PlayNHost ваш бот использует polling: для вебхуков нужен публичный HTTPS-адрес, которого в этих тарифах пока нет.
Баннер сообщает Для вашего бота задан вебхук. В разделе Telegram страницы Бот тоже показано Для этого бота задан вебхук вместе с адресом, на который он указывает. Чтобы это исправить:

- Нажмите Удалить вебхук на баннере или Удалить вебхук в разделе Telegram.
- Подтвердите в окне Удалить вебхук? кнопкой Удалить вебхук. Telegram перестанет отправлять сообщения вашего бота на этот адрес и сохранит ожидающие, так что ваш бот заберёт их здесь.
- Перезапустите бота.
Если копия вашего бота всё ещё работает где-то на этом вебхуке, после его удаления она перестанет получать сообщения. Остановите и эту копию, иначе при перезапуске она может задать вебхук снова.
python-telegram-bot (run_polling()) и grammY (bot.start()) сами удаляют вебхук при запуске polling. aiogram этого не делает: он продолжает повторять попытки на ошибке 409. Нажмите кнопку или добавьте одну строку перед polling:
await bot.delete_webhook()
await dp.start_polling(bot)
Ваш код пытается задать вебхук
Если ваш код вызывает setWebhook, Telegram отклоняет его с ошибкой Bad Request: bad webhook: ..., а баннер сообщает Ваш код пытается задать вебхук. Замените запуск вебхука вызовом polling своей библиотеки: run_polling() в python-telegram-bot, start_polling() в aiogram, bot.start() в grammY или launch() в Telegraf. Кнопка Открыть Files на баннере ведёт к вашему коду. Примеры: Как перенести Telegram-бота на PlayNHost.
401 Unauthorized: токен отклонён
Telegram отвечает 401 Unauthorized, когда токен отозван в @BotFather или скопирован неверно. Примеры:
telegram.error.InvalidToken
TelegramUnauthorizedError: Telegram server says - Unauthorized
GrammyError: Call to 'getMe' failed! (401: Unauthorized)
TelegramError: 401: Unauthorized
Наши стартовые боты выводят вместо этого одну понятную строку:
Telegram did not accept the bot token. Paste the current one from @BotFather on the Bot page, then restart.
Баннер сообщает Telegram не принял токен вашего бота, а раздел Telegram показывает Telegram не принял его. В @BotFather отправьте /mybots, выберите своего бота, затем API Token; в разделе нажмите Заменить токен, вставьте токен, нажмите Сохранить токен, затем Перезапустить сейчас. aiogram и pyTelegramBotAPI продолжают повторять попытки с отклонённым токеном, поэтому без баннера бот выглядел бы работающим.
Токен, который Telegram отклонил, никогда не сохраняется. Если вы вставите токен Discord, панель ответит Это токен Discord-бота.: скопируйте тот, который выдал @BotFather.
429 Too Many Requests: ограничение частоты
Too Many Requests: retry after 22
telegram.error.RetryAfter: Flood control exceeded. Retry in 39.0 seconds
Ваш бот отправил за короткое время больше сообщений, чем разрешает Telegram, и Telegram просит его подождать указанное число секунд. Библиотеки ждут и продолжают работу, поэтому бот из-за этого не останавливается. Баннер Telegram замедляет вашего бота служит только предупреждением. Отправляйте меньше сообщений сразу: Telegram просит примерно одно сообщение в секунду в чате и 20 в минуту в группе.
Ваш бот не смог связаться с Telegram
Этот баннер означает, что один запрос вашего бота к api.telegram.org не удался. Большинство библиотек повторяют попытку сами, так что одна такая строка не повод для беспокойства. Если бот молчит, перезапустите его; если это повторяется, откройте тикет в поддержку.
Полезно знать
- Когда бот останавливается из-за отклонённого токена, другой копии или вебхука, в письме об остановке, которое мы отправляем, названа причина.
- Подробнее о консоли: Как читать консоль и логи вашего бота. Настройка с нуля: Как запустить Telegram-бота.



