Все статьи

Telegram-бот не запускается после деплоя: как найти причину

Проверьте логи и отличите неверный BOT_TOKEN, конфликт webhook, нехватку памяти и ошибку сборки. Что исправлять перед повторным запуском.

Если контейнер запустился, это ещё не значит, что бот получает сообщения. Сначала откройте проект в кабинете Deployka и посмотрите последнюю ошибку и логи. Секреты из ENV и полный BOT_TOKEN не вставляйте в тикет или публичный чат.

1. Ошибка сборки или ошибка запуска?

Build failed означает, что образ не собрался: проверьте requirements.txt или package.json, имена пакетов и версию Python/Node. Если в сообщении сказано, что worker не может разрешить адрес реестра пакетов, это может быть сетевой сбой инфраструктуры: повторите попытку позже и обратитесь в поддержку, если он сохраняется. Покупка Nano не исправит недоступный реестр.

Container restarted after start означает, что приложение упало уже после сборки. Найдите первую строку traceback в логах: там часто указаны отсутствующий ENV, неверный импорт или путь к файлу.

2. Telegram пишет Unauthorized или InvalidToken

Проверьте BOT_TOKEN в ENV проекта. Вставьте действующий токен из @BotFather без пробелов и кавычек, сохраните ENV и повторите деплой. Не публикуйте токен в скриншотах; если он утёк, перевыпустите его у @BotFather.

3. Webhook is active или another getUpdates client

Один бот не должен одновременно опрашиваться несколькими запущенными копиями. Остановите свой локальный процесс и другие собственные инстансы с тем же токеном. Если вы раньше настраивали webhook для этого бота, проверьте его настройки и удалите webhook только после того, как убедитесь, что он больше не нужен. Затем перезапустите проект. Не меняйте webhook чужого или рабочего бота наугад.

4. Контейнер OOM-killed

Процесс превысил лимит памяти контейнера. Проверьте, не загружаете ли большую модель или файл целиком при старте, и нет ли бесконечного цикла перезапуска. Сократите потребление памяти; если приложению объективно нужно больше RAM, выберите подходящий тариф. Небольшое увеличение лимита не гарантирует, что тяжёлый проект заработает.

5. После исправления

  1. Сохраните изменения в коде или ENV.
  2. Повторите деплой и проверьте новые логи, а не старую ошибку.
  3. Отправьте тестовое сообщение боту и убедитесь, что он отвечает.

Если проект уже оплачен, ошибка запуска не требует второй оплаты: откройте его в кабинете и завершите активацию после исправления причины.

Ещё нет проекта? Создать проект на Deployka. Для проверки своего кода используйте Deploy Doctor, а при инфраструктурной ошибке или неясных логах напишите в поддержку.