'Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
Does anyone get errors like this? How can I fix them?
2021-11-07 08:29:38,643 - telegram.ext.updater - ERROR - Error while getting Updates: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
2021-11-07 08:29:38,644 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/telegram/ext/updater.py", line 646, in _network_loop_retry
if not action_cb():
File "/usr/local/lib/python3.8/dist-packages/telegram/ext/updater.py", line 597, in polling_action_cb
updates = self.bot.get_updates(
File "/usr/local/lib/python3.8/dist-packages/telegram/ext/extbot.py", line 222, in get_updates
updates = super().get_updates(
File "/usr/local/lib/python3.8/dist-packages/telegram/bot.py", line 130, in decorator
result = func(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/telegram/bot.py", line 2861, in get_updates
self._post(
File "/usr/local/lib/python3.8/dist-packages/telegram/bot.py", line 295, in _post
return self.request.post(
File "/usr/local/lib/python3.8/dist-packages/telegram/utils/request.py", line 356, in post
result = self._request_wrapper(
File "/usr/local/lib/python3.8/dist-packages/telegram/utils/request.py", line 283, in _request_wrapper
raise Conflict(message)
telegram.error.Conflict: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
I get these answers from API
api.telegram.org/bot<token>/getWebhookInfo --> {"ok":true,"result":"url":"","has_custom_certificate":false,"pending_update_count":0}}
api.telegram.org/bot<token>/getUpdates --> {"ok":false,"error_code":409,"description":"Conflict: terminated by other getUpdates request; make sure that only one bot instance is running"}
Solution 1:[1]
This happens when 2 different clients send getUpdates method to Telegram servers for one bot token.
You should make sure you're not running your script more than once at the same time, or your bot token is not used somewhere else.
If you're certain that your script is executing alone and there are no other instances, then revoke your bot token from https://t.me/botfather and get a new token.
Solution 2:[2]
I fix this issue arranging code like this :
from telegram.ext import CommandHandler, Updater
from logging import basicConfig, getLogger, INFO
basicConfig(level=INFO)
log = getLogger()
def start(update, context):
update.message.reply_text(
"start this bot",
parse_mode="markdown")
def help(update, context):
update.message.reply_text(
"help for this bot",
parse_mode="markdown")
def main():
updater = Updater(token=BOT_TOKEN, use_context=True)
dispatcher = updater.dispatcher
start_handler = CommandHandler("start", start)
help_handler = CommandHandler("help", help)
dispatcher.add_handler(start_handler)
dispatcher.add_handler(help_handler)
updater.start_polling()
if __name__ == '__main__':
main()
If you are using flask, do not set debug mode to true also on your development server, first call main function then call flask server like this:-
app = Flask(__name__)
if __name__ == '__main__':
main()
app.run()
Solution 3:[3]
Stop the bot, close your IDE, make sure that all python processes were ended in the task manager, and try again. That has helped me.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ali Padida |
| Solution 2 | |
| Solution 3 | SashaTsios |
