Telegram error 400: Bad Request: not enough rights to send text messages to the chat
Last verified against Telegram Bot API reference
Bad Request: not enough rights to send text messages to the chatWhat error 400 means
The chat's permission model allows the bot to be present but not to send the kind of content you just tried. Telegram's granular chat permissions distinguish text messages from photos, videos, documents, polls, stickers and other media, and the description names the content type that was refused. Variants you may see include not enough rights to send photos to the chat, ... documents ..., ... polls ... and similar; the entry here covers the family.
This is a 400 because the request itself is wrong for the chat state, not because the bot is banned (403) or because the chat is unknown (chat not found). The bot will usually be a regular member subject to the group's default permissions, or a restricted member with a custom permission set.
Admin bots are normally exempt, which is why this error tends to appear after a bot is demoted or after an admin tightens group settings.
What it looks like
{"ok":false,"error_code":400,"description":"Bad Request: not enough rights to send text messages to the chat"}Why it happens
- Group default permissions were changed to disallow text (or media) from members, and the bot is not an admin.
- An admin restricted the bot specifically via
restrictChatMemberor the client UI. - Slow mode or a topic-level restriction applies and the bot is a regular member.
- The bot was demoted from admin to member during a chat cleanup.
How to fix Telegram error 400
- 1Inspect
getChatfor the chat'spermissionsobject andgetChatMemberfor the bot's own rights. - 2Have the owner promote the bot or explicitly allow the needed content type.
- 3If the bot only needs to post text, reduce what it sends to what is permitted rather than failing outright.
- 4Subscribe to
my_chat_memberandchat_memberupdates so you learn about permission changes immediately.
How to stop it recurring
Treat group permissions as data: cache the bot's rights per chat from my_chat_member updates and check them before sending media. Provide a fallback (for example a link instead of a photo) when a content type is disallowed, and surface a clear admin-facing message explaining which right is missing.
Because the description names the refused content type, log it verbatim: 'photos' vs 'text messages' tells you which permission to request. The granular permission list lives on the ChatPermissions object; the related wordings are covered under have no rights to send a message and CHAT_WRITE_FORBIDDEN.
Official reference: Telegram Bot API reference. See all Telegram error codes or the Telegram limits and quotas.
Related codes
Error 400 - quick answers
What does Telegram error 400 mean?
The chat's permission model allows the bot to be present but not to send the kind of content you just tried. Telegram's granular chat permissions distinguish text messages from photos, videos, documents, polls, stickers and other media, and the description names the content type that was refused. Variants you may see include not enough rights to send photos to the chat , ... documents ... , ... polls ...
How do I fix Telegram error 400?
1. Inspect getChat for the chat's permissions object and getChatMember for the bot's own rights. 2. Have the owner promote the bot or explicitly allow the needed content type. 3. If the bot only needs to post text, reduce what it sends to what is permitted rather than failing outright. 4. Subscribe to my_chat_member and chat_member updates so you learn about permission changes immediately.
Stop debugging Telegram by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.