У каждого, кто пишет ботов, бот хоть раз молчал. У меня тоже. Это не признак того, что ты бестолковый, а обычный рабочий момент. Профи отличается от новичка не тем, что у него не ломается, а тем, что он быстро находит причину.
После урока сможешь: объяснить тему «Бот молчит? Чиним» и выполнить связанный с ней учебный шаг без подсказки.
Разберём семь самых частых причин «бот не отвечает». В девяти случаях из десяти дело в одной из них.
Причина 1: программа не запущена
Самое частое. Бот живёт, только пока работает программа. Закрыл редактор, выключил ноут, нажал Ctrl+C, и бот замолчал. Проверь: программа сейчас точно запущена и в терминале «крутится»? Если нет, просто запусти заново.
Причина 2: ошибка в токене
Если при запуске вылетает ошибка про токен или «Unauthorized», значит токен неверный. Частые ляпы: лишний пробел, потерял пару символов, вставил не туда. Зайди к @BotFather, скопируй токен заново целиком и аккуратно вставь в config.py без пробелов по краям.
Причина 3: опечатка в обработчике
Программа запускается, но бот не реагирует. Тогда смотри на обработчики. Частая беда: опечатка в строчке с табличкой-обработчиком. Например, написано mesage_handler вместо message_handler, потеряна буква. Сверь свою строчку с рабочим примером из прошлого урока, буква в букву.
Причина 4: забыли запустить поллинг
Если в самом низу файла нет строки bot.infinity_polling(), программа пройдёт сверху вниз и закончится. Бот даже не начнёт слушать сообщения. Проверь, что эта строка есть и стоит последней.
Причина 5: сломанные отступы
Python строгий к отступам. Если строки внутри функции не сдвинуты вправо или сдвинуты вкривь, программа выдаст ошибку про отступ (IndentationError). Глянь, что всё внутри def аккуратно сдвинуто на один уровень.
Причина 6: поправил код, но не перезапустил
Ты нашёл ошибку, исправил строчку, сохранил файл. А бот всё равно ведёт себя по-старому. Будто не слышит.
Дело вот в чём. Python читает твой файл один раз, в момент запуска программы. Дальше бот работает по той версии, что была на старте. Ты меняешь файл, но запущенный бот про это не знает: он крутится со старым кодом в памяти.
Лечится просто. Нажми Ctrl+C в терминале, чтобы остановить бота. Потом запусти файл заново. Теперь он работает по свежему коду.
Это самая частая «магия» у новичков: «я же исправил, а он не слушается». Возьми за привычку: поправил код, перезапусти. Каждый раз.
Причина 7: запущены две копии бота
Бывает хитрее. Бот то отвечает, то молчит, кнопки залипают, будто через раз. Частая причина, о которой не догадываются, — у тебя запущены две копии одного бота сразу.
Так выходит незаметно. Запустил файл в одном окне, забыл, запустил ещё раз в другом. Или вчерашний запуск не закрыл. И теперь два процесса дерутся за одного бота.
Telegram такого не любит. Он пускает к боту только одного «слушателя». Когда их двое, вылетает красная ошибка со словом Conflict (по-русски «конфликт») или строчка 409: terminated by other getUpdates. Это как один телефон и две трубки: снял вторую, первая захрипела.
Что делать. Закрой все лишние запуски: нажми Ctrl+C в каждом окне терминала, где крутится бот. Оставь ровно один. Залипание пройдёт.
Как читать красную ошибку
Когда программа падает, не зажмуривайся. Внизу будет красный текст, и самая нижняя строка обычно говорит главное. IndentationError значит беда с отступами. Unauthorized значит неверный токен. Имя с опечаткой даст NameError. Ошибка часто прямо называет номер строки, где споткнулась. Иди туда и смотри.
Если совсем непонятно, скопируй последнюю строку ошибки и поищи в интернете. Это не читерство, так делают все программисты каждый день.
Задание. Возьми файл с ошибкой из материалов урока (бот запускается, но молчит). Найди причину, назови её словами и почини. После правки бот должен отвечать. Потом прокачай Бот-Эхо: пусть на слово «привет» в любом виде он отвечает по-особенному, а всё остальное по-прежнему повторяет.
Подсказка: Сначала проверь, есть ли в самом низу строка bot.infinity_polling(). Для «привет» добавь отдельный обработчик ВЫШЕ эхо.
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Онлайн-проверка ответа появится позже
Зачёт, если:
✅ причина, почему бот молчал, названа словами и исправлена — бот снова отвечает;
✅ на слово «привет» в любом виде бот отвечает по-особому, остальное по-прежнему повторяет;
✅ проверено на твоём боте.
Контрольный вопрос. Почему бот перестаёт отвечать, когда ты закрыл программу на компьютере?
Подсказка: Вспомни, кто именно спрашивает у Telegram про новые сообщения.
Онлайн-проверка ответа появится позже
