Un bot Telegram riceve 409 Conflict per uno di due motivi: un’altra copia del bot chiede a Telegram i messaggi con lo stesso token, oppure sul bot è impostato un webhook mentre il tuo codice usa il polling. Telegram permette a uno solo dei due di ricevere i messaggi del bot. Leggi la fine della riga in Console per capire quale, poi:
terminated by other getUpdates request: ferma l’altra copia del tuo bot (sul tuo PC, sul vecchio host o su un altro server), poi riavvia il bot qui.- Non trovi l’altra copia? Su @BotFather invia
/mybots, scegli il tuo bot, API Token, poi revoca il token e incolla quello nuovo nella pagina Bot, sezione Telegram. can't use getUpdates method while webhook is active: clicca Rimuovi il webhook sul banner (oppure Rimuovi il webhook nella sezione Telegram), poi riavvia il bot.
Su un bot Telegram di PlayNHost il pannello legge la console al posto tuo e mostra sopra un banner con la causa e il pulsante che la risolve. Il badge nella Panoramica dice Non riceve messaggi.
409: un’altra copia del tuo bot è in esecuzione
Il testo di Telegram, dentro l’errore della tua libreria:
Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
Come appare con ogni libreria:
| Libreria | Riga nella console |
|---|---|
| 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 consegna i messaggi a una sola copia alla volta, quindi le due copie si scalzano a vicenda. python-telegram-bot, aiogram e pyTelegramBotAPI continuano a riprovare: il tuo bot sembra in esecuzione qui, ma perde messaggi o non risponde a nulla. grammY e Telegraf invece si fermano con l’errore.
Il banner dice Il tuo bot è in esecuzione anche altrove. Per risolvere:
- Trova l’altra copia e fermala: una finestra del terminale o uno script sul tuo PC, il vecchio host da cui ti sei spostato (un’attività sempre attiva, un deployment o un servizio), oppure un secondo server che esegue lo stesso codice.
- Premi Riavvia qui e guarda Console. L’errore sparisce quando il tuo bot è l’unica copia.
- Se non trovi l’altra copia, crea un nuovo token così che quello vecchio smetta di funzionare ovunque: su @BotFather invia
/mybots, scegli il tuo bot, API Token, poi Revoke current token. - Nella pagina Bot, sezione Telegram, clicca Sostituisci il token, incolla il nuovo token e clicca Salva il token. Il pannello dice Il bot usa ancora il vecchio token finché non si riavvia.: clicca Riavvia ora.
Il pulsante Sostituisci il token del banner apre la stessa sezione. Il vecchio token smette di funzionare subito, quindi nessuna copia dimenticata può più leggere i messaggi del tuo bot.

409: è impostato un webhook mentre il tuo bot usa il polling
Il testo di Telegram:
Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first
Un webhook dice a Telegram di inviare i messaggi del tuo bot a un indirizzo web. Finché ce n’è uno impostato, il codice che usa il polling (chiede a Telegram i nuovi messaggi) riceve questo errore. Di solito resta da un vecchio host che eseguiva il bot con un webhook, oppure da codice che una volta ha chiamato setWebhook. Su PlayNHost il tuo bot usa il polling: i webhook richiedono un indirizzo HTTPS pubblico, che questi piani per ora non includono.
Il banner dice Sul tuo bot è impostato un webhook. Anche la sezione Telegram della pagina Bot mostra Su questo bot è impostato un webhook con l’indirizzo a cui punta. Per risolvere:

- Clicca Rimuovi il webhook sul banner, oppure Rimuovi il webhook nella sezione Telegram.
- Conferma in Rimuovere il webhook? con Rimuovi il webhook. Telegram smette di inviare i messaggi del tuo bot a quell’indirizzo e conserva quelli in attesa, così il tuo bot li recupera qui.
- Riavvia il bot.
Se una copia del tuo bot gira ancora altrove su quel webhook, smette di ricevere messaggi quando lo rimuovi. Ferma anche quella copia, altrimenti potrebbe impostare di nuovo il webhook al riavvio.
python-telegram-bot (run_polling()) e grammY (bot.start()) rimuovono da soli un webhook quando parte il polling. aiogram no: continua a riprovare sul 409. Usa il pulsante, oppure aggiungi una riga prima del polling:
await bot.delete_webhook()
await dp.start_polling(bot)
Il tuo codice prova a impostare un webhook
Se il tuo codice chiama setWebhook, Telegram lo rifiuta con Bad Request: bad webhook: ... e il banner dice Il tuo codice prova a impostare un webhook. Sostituisci l’avvio del webhook con la chiamata di polling della tua libreria: run_polling() in python-telegram-bot, start_polling() in aiogram, bot.start() in grammY o launch() in Telegraf. Il pulsante Apri Files del banner ti porta al tuo codice. Esempi: Come spostare un bot Telegram su PlayNHost.
401 Unauthorized: il token viene rifiutato
Telegram risponde 401 Unauthorized quando il token è stato revocato su @BotFather o è stato copiato male. Esempi:
telegram.error.InvalidToken
TelegramUnauthorizedError: Telegram server says - Unauthorized
GrammyError: Call to 'getMe' failed! (401: Unauthorized)
TelegramError: 401: Unauthorized
I nostri bot di partenza stampano invece una riga semplice:
Telegram did not accept the bot token. Paste the current one from @BotFather on the Bot page, then restart.
Il banner dice Telegram non ha accettato il token del bot e la sezione Telegram mostra Telegram non l’ha accettato. Su @BotFather invia /mybots, scegli il tuo bot, poi API Token; nella sezione clicca Sostituisci il token, incollalo, clicca Salva il token, poi Riavvia ora. aiogram e pyTelegramBotAPI continuano a riprovare con un token rifiutato, quindi senza il banner il bot sembrerebbe in esecuzione.
Un token che Telegram rifiuta non viene mai salvato. Se incolli un token Discord, il pannello dice Quello è un token di bot Discord.: copia quello che ti ha dato @BotFather.
429 Too Many Requests: controllo anti-flood
Too Many Requests: retry after 22
telegram.error.RetryAfter: Flood control exceeded. Retry in 39.0 seconds
Il tuo bot ha inviato più messaggi di quanti Telegram ne consenta in poco tempo, e Telegram gli chiede di aspettare il numero di secondi indicato. Le librerie aspettano e proseguono, quindi questo non ferma mai il bot. Il banner Telegram sta rallentando il tuo bot è solo un avviso. Invia meno messaggi alla volta: Telegram chiede circa un messaggio al secondo in una chat e 20 al minuto in un gruppo.
Il tuo bot non è riuscito a raggiungere Telegram
Questo banner significa che una richiesta del tuo bot a api.telegram.org è fallita. La maggior parte delle librerie riprova da sola, quindi una singola riga non è un problema. Se il bot resta muto, riavvialo; se continua a succedere, apri un ticket di assistenza.
Da sapere
- Quando il bot si ferma per un token rifiutato, un’altra copia o un webhook, l’e-mail di arresto che inviamo indica la causa.
- Altro sulla console: Come leggere la console e i log del tuo bot. Per partire da zero: Come ospitare un bot Telegram.



