Telegram Bot API 'chat not found': common causes
The Telegram Bot API can return “chat not found” when you send a message. Common causes and fixes:
1. Bot was removed from the chat
If the bot was removed from the group, supergroup, or channel, the API returns “chat not found” for that chat_id.
Fix: Add the bot back to the chat. For groups, add @print_id_bot and send /id to get the current chat_id. For channels, add your bot as admin again.
2. Wrong chat_id
Using an old, mistyped, or incorrect chat_id causes the error.
Fix: Get the correct chat_id. In a group: add @print_id_bot, send /id or mention it, and copy the chat_id. In private chat: open @print_id_bot and tap Start to get your User ID (which equals chat_id for private chats).
3. Group migrated to supergroup
When a group becomes a supergroup, the chat_id can change. The old ID may no longer work.
Fix: Get the new chat_id. Add @print_id_bot to the (super)group and send /id. Use the new value. See group vs supergroup chat_id.
4. User blocked the bot or deleted account
For private chats, if the user blocked the bot or deleted their account, “chat not found” can occur.
Fix: The user must unblock the bot or use an active account. You cannot fix this from the bot side.
5. Channel: bot not admin
To post in a channel, the bot must be an administrator. Otherwise you may get permission errors or “chat not found.”
Fix: Add the bot to the channel as admin with the right permissions (e.g. post messages).
Verify your chat_id
Use @print_id_bot to confirm:
- Private: Open the bot, tap Start — User ID = chat_id
- Group/supergroup: Add the bot, send /id — copy the chat_id from the reply
- Channel: Forward a channel post to the bot — it shows the channel ID
Related pages
- How to get Telegram chat_id for a group
- Group vs supergroup chat_id
- Telegram Bot API: how to get chat_id
FAQ
Can I recover an old chat_id after migration?
No. Use the new chat_id. Get it from @print_id_bot by adding it to the group and sending /id.
Does “chat not found” mean the chat was deleted?
Not always. It often means the bot was removed or the chat_id is wrong. For private chats, the user may have blocked the bot.
How do I get the chat_id for a channel I own?
Add your bot as admin, post a message, and read channel_post.chat.id from the update. Or forward a post to @print_id_bot to see the channel ID.
Why does it work in one group but not another?
Each chat has its own chat_id. If one works and another does not, the bot may have been removed from the second chat, or you are using the wrong chat_id.
Should I cache chat_ids?
You can cache them, but re-fetch after migrations or if you get “chat not found.” Add @print_id_bot and send /id to verify.
Get the correct chat_id with @print_id_bot.
Related pages
- Add a bot to a group to get chat_id (10 seconds)
- Aiogram: get chat_id and user ID (examples)
- Bot not responding in a Telegram group: checklist
- C# Telegram bot: get chat_id
- Forwarded messages in Telegram: why IDs can be hidden
- Forwarded sender ID hidden in Telegram: reasons and limits
- Get Telegram channel ID for Bot API (what's possible and what isn't)
- Get Telegram user ID (safe methods)