Error telebot a request to the telegram api was unsuccessful error code 409

Please answer these questions before submitting your issue. Thanks! What version of pyTelegramBotAPI are you using? pyTelegramBotAPI 4.7.1 What OS are you using? docker images in Mac OS Ventura and...

@setovi

Please answer these questions before submitting your issue. Thanks!

  1. What version of pyTelegramBotAPI are you using?

pyTelegramBotAPI 4.7.1

  1. What OS are you using?

docker images in Mac OS Ventura and Ubuntu 22.04 on Raspberry Pi 4. Same behaviour.

  1. What version of python are you using?

3.8-buster
3.9-bullseye

Same behaviour.

The bot runs fine but the following appears continuously in the logs. First every few seconds, some time later about 30+ seconds every exception.

2022-11-02 10:02:01,917 (init.py:1089 MainThread) ERROR — TeleBot: «Exception traceback:
Traceback (most recent call last):
File «/usr/local/lib/python3.8/site-packages/telebot/init.py», line 1077, in __threaded_polling
polling_thread.raise_exceptions()
File «/usr/local/lib/python3.8/site-packages/telebot/util.py», line 116, in raise_exceptions
raise self.exception_info
File «/usr/local/lib/python3.8/site-packages/telebot/util.py», line 98, in run
task(*args, **kwargs)
File «/usr/local/lib/python3.8/site-packages/telebot/init.py», line 653, in __retrieve_updates
updates = self.get_updates(offset=(self.last_update_id + 1),
File «/usr/local/lib/python3.8/site-packages/telebot/init.py», line 627, in get_updates
json_updates = apihelper.get_updates(self.token, offset, limit, timeout, allowed_updates, long_polling_timeout)
File «/usr/local/lib/python3.8/site-packages/telebot/apihelper.py», line 334, in get_updates
return _make_request(token, method_url, params=payload)
File «/usr/local/lib/python3.8/site-packages/telebot/apihelper.py», line 162, in _make_request
json_result = _check_result(method_name, result)
File «/usr/local/lib/python3.8/site-packages/telebot/apihelper.py», line 189, in _check_result
raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running

Obviously no more than one instance running.

Thanks in advance

@Badiboy

Obviously no more than one instance running.

Not obviously without any details. If Telegram says it does — it definitely does.
Check your code, may be it runs in parallel.

@setovi

But this is the code 😀 :

from config import *
import telebot

bot = telebot.TeleBot(TELEGRAM_TOKEN)

@bot.message_handler(commands=[«start», «help»])
def cmd_start(message):
bot.reply_to(message, «Hi!»)

if name == «main«:
print(«Starting bot»)
bot.infinity_polling()
print(«End»)

Maybe when one run is finished, the Telegram API does not know so the next bot execution triggers the message?

@Badiboy

print("Starting bot»)

  1. Show the console output after program starts and before Telegram error.
  2. Show the config which you imports.

Nothing happens without reasons. The only thing is to find the problem in your code. :)

@setovi

Console output:

Starting bot
2022-11-03 13:45:22,690 (init.py:1087 MainThread) ERROR — TeleBot: «Threaded polling exception: A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running»
2022-11-03 13:45:22,691 (init.py:1089 MainThread) ERROR — TeleBot: «Exception traceback:
Traceback (most recent call last):
File «/home/user/.local/lib/python3.10/site-packages/telebot/init.py», line 1077, in __threaded_polling
polling_thread.raise_exceptions()
File «/home/user/.local/lib/python3.10/site-packages/telebot/util.py», line 116, in raise_exceptions
raise self.exception_info
File «/home/user/.local/lib/python3.10/site-packages/telebot/util.py», line 98, in run
task(*args, **kwargs)
File «/home/user/.local/lib/python3.10/site-packages/telebot/init.py», line 653, in __retrieve_updates
updates = self.get_updates(offset=(self.last_update_id + 1),
File «/home/user/.local/lib/python3.10/site-packages/telebot/init.py», line 627, in get_updates
json_updates = apihelper.get_updates(self.token, offset, limit, timeout, allowed_updates, long_polling_timeout)
File «/home/user/.local/lib/python3.10/site-packages/telebot/apihelper.py», line 334, in get_updates
return _make_request(token, method_url, params=payload)
File «/home/user/.local/lib/python3.10/site-packages/telebot/apihelper.py», line 162, in _make_request
json_result = _check_result(method_name, result)
File «/home/user/.local/lib/python3.10/site-packages/telebot/apihelper.py», line 189, in _check_result
raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
«

The config.py is just one line,

TELEGRAM_TOKEN = «mybotprivatetoken»

@Badiboy

Can you try to simply remove this line?
if name == "main":

@setovi

@Badiboy

image

Everything is fine for me.

18.11.2022

371 Просмотры

Природа происхождения ошибки 409 кроется в конфликте запросов. Не всегда эти запросы относятся к пользовательским. Например, такая ошибка может возникнуть при конфликте файлов сайта, если они обращаются к разным данным в одном файле. В результате этого, сервер возвращает ошибку, которая на самом деле не имеет отношения к запросам пользователей.

Основные причины возникновения ошибки 409:

  • Пользователь обращается к данным, имеющим отличное значение или более новую версию. В итоге, сервер выдает ошибку 409, т.к. существует обновленная версия файла, страницы или скрипта.
  • Ошибка 409 появилась в результате конфликтующих запросов внутри файлов на сервере. Решить проблему может программист.
  • Использование прокси, которое конфликтует с определенными адресами или форматами запрашиваемых данных. Не путайте эту ошибку с ошибкой 407.
  • Более распространенная причина – троян или вирус, который блокирует запросы к определенным сайтам или подгружает файл, который имеет конфликт с конфигурацией браузера.
  • Ошибка 409 Conflicting Request в большинстве случае решается системным администратором или программистом, если это не касается заражения компьютера вирусом или трояном. Как проверить и какой программой расскажем ниже.

Чистим от вируса или трояна, чтобы убрать ошибку 409

Определить вирус/троян у вас или нет просто – установите программу Cureit от Dr.Web и просканируйте систему этой программой. Она бесплатная и не требует установки. Скачиваем только с официального сайта. В программе отмечаем все пункты для проверки и шагаем спать/на работу, т.к. сама проверка займет длительное время. На скриншоте ниже вы можете рассмотреть, как и что отмечать в программе. Свой антивирус лучше отключить перед проверкой.

Можно также использовать бесплатную утилиту от Касперского, но она довольно сложная и нужно понимать, какие скрипты вводить в консоль. Остальные программы – платные, поэтому не пишу о них. Кстати, не рекомендую скачивать бесплатные ключи, т.к. такие генераторы могут с собой принести тот самый вирус или троян. Не пожалейте 30$ в год за нормальную защиту.

Исправляем ошибку 409 в конкретном браузере

В случае, если ошибка 409 Conflicting Request появляется буквально на каждом сайте, чтобы вы ни нажимали – это точно троян или вирус. Причем это должно происходить в любом браузере. Если нет – можете сразу удалить и заново установить браузер. Возможно произошел сбой конфигурации браузера. Заранее нужно сохранить закладки, т.к. можно потерять все нажитое непосильным трудом. Делается это просто. На скриншоте выше вы видите пример сохранения настроек в браузере Mozilla. Аналогично делается и в остальных браузерах.

Последнее слово про ошибку

Если уж сильно хочется – установите программу CCleaner и пройдитесь по реестру с помощью этой программы. Во всяком случае это безопаснее, чем делать что-то лично ручками. Манипуляции с компьютером в случае с ошибкой 409 делать не стоит.

Загрузка…

Tiralion

0 / 0 / 0

Регистрация: 28.02.2021

Сообщений: 1

1

Telegram Bot

28.02.2021, 13:50. Показов 27041. Ответов 2

Метки нет (Все метки)


При написании простого бота

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import telebot
bot = telebot.TeleBot('мой токен')
@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Привет, ты написал мне /start')
 
@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == 'привет':
        bot.send_message(message.chat.id, 'Привет, мой создатель')
    elif message.text.lower() == 'пока':
        bot.send_message(message.chat.id, 'Прощай, создатель')
 
bot.polling()

выползает ошибка

ERROR — TeleBot: «A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: can’t use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first»

что не так я делаю?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



rooffall

1 / 1 / 0

Регистрация: 28.06.2020

Сообщений: 1

25.03.2021, 23:52

2

Видимо до этого пытались запустить бота не через polling, а webhook методом.

Перед первом запуском кода вставьте строчку.

Python
1
bot.remove_webhook()

Позже эту строку можно будет удалить.



1



VetalM

1 / 1 / 0

Регистрация: 30.03.2020

Сообщений: 40

28.03.2021, 10:33

3

Попробуйте в самый конец файла добавить:

Python
1
2
if __name__ == '__main__':
    bot.polling(none_stop=True)



0



Почему не получается установить бот Api telegram и что делать с ошибкой 409

В 2013-м году братья Дуровы создали инновационный мессенджер Telegram, который за девять лет был установлен на мобильные устройства свыше одного миллиарда раз (если верить статистике). Однако не только компании и обычные пользователи любят Телеграм. Платформу активно используют и разработчики для создания интерактивных чат-ботов. Однако иногда они сталкиваются с ошибкой 409, которая сопровождается сообщением «Не получается установить бот API Telegram».

Причины ошибки

Предполагаем, что этот материал будут читать не только опытные специалисты, но и начинающие разработчики, которые только недавно познакомились с возможностями API Telegram. Потому для начала расскажем, с чем могут быть связаны ошибки, возникающие во время работы с ботом. Весь процесс работы с API состоит из следующих этапов:

Screenshot_4

  1. Пользователь или программа отправляет запрос на сервер в виде функции.
  2. Сервер обрабатывает введенные параметры и сам запрос, а после выдает ответ.
  3. Пользователь считывает полученный ответ и оперирует с ним.

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

  1. Переданы некорректные аргументы или значения. В особенности проверьте правильность указанного токена.
  2. Бот запущен на нескольких серверах сразу. Нельзя указать один и тот же токен на двух хостингах.
  3. Проблема на стороне сервера Telegram. Глобальные сбои бывают редко, но не будем исключать их вероятность.

Отталкиваясь от возможных причин, автор составил список возможных решений. Ознакомиться с ним можете в разделе ниже.

Способы исправления

Примечательно, что автор и сам однажды столкнулся с этой проблемой, когда случайно загружал заброшенного на старом сервере бота на новый хостинг. По правилам разработчик должен сначала остановить чат-бота на старом устройстве, а после только запустить его на новом. Чтобы проверить, запущен ли уже бот, просто отправьте ему сообщение с командой /start. Обычно большинство приложений запрограммировано реагировать на эту команду.

В зависимости от результата ввода команды будут меняться и дальнейшие действия:

  1. Приложение ответило. Значит, оно запущено на старом сервере. Откройте его интерфейс и завершите работу процесса.
  2. Ответ не пришел. В таком случае, скорее всего, проблема кроется в самом токене. Проверьте, указан ли в конфигурациях выданный BotFather токен и укажите корректный идентификатор.

Информационный портал IT Техник

Вам помогло? Поделитесь с друзьями — помогите и нам!

Понравилась статья? Поделить с друзьями:
  • Error tds wiki
  • Error tchar has not been declared
  • Error tattoo sccm
  • Error target voltage may be too low for reliable debugging
  • Error target not halted