Telegram error 400: Bad Request: have no rights to send a message
Last verified against Telegram Bot API reference
Bad Request: have no rights to send a messageWhat error 400 means
The bot is in the chat and the chat exists, but the bot's current permissions do not allow it to post there. Telegram reports this as a 400 rather than a 403 because the request is malformed from Telegram's point of view: you asked a member without send rights to send.
Typical contexts are supergroups where admins restricted the bot (or restricted all members and the bot is not an admin), channels where the bot is a member but not an administrator with can_post_messages, and groups with slow mode or a closed forum topic. A closely related description, not enough rights to send text messages to the chat, appears when the chat's default permissions forbid a specific content type; see that entry.
Nothing here is about the user having blocked the bot. That case returns 403 Forbidden.
What it looks like
{"ok":false,"error_code":400,"description":"Bad Request: have no rights to send a message"}Why it happens
- The bot was restricted by a group admin (muted) or the group's default permissions deny sending.
- Channel posting without admin rights: bots need to be administrators with
can_post_messagesto post in channels. - The forum topic is closed, or the bot lacks
can_manage_topicsfor a topic-level action. - The bot was demoted after it was set up and nobody noticed.
How to fix Telegram error 400
- 1Call
getChatMemberwith the bot's own ID and readstatusand thecan_send_messages/can_post_messagesfields. - 2Ask the chat owner to promote the bot or lift the restriction; there is no API call that a bot can make to grant itself rights.
- 3For channels, add the bot as an administrator with posting enabled.
- 4Re-test with a single
sendMessagebefore re-enabling bulk sends to that chat.
How to stop it recurring
Listen for my_chat_member updates, which tell you the moment the bot's status or rights change in any chat, and pause sends to chats where the bot has been restricted or demoted. Document the required rights in your bot's onboarding message so admins configure them correctly the first time.
python-telegram-bot and aiogram raise their generic 400 classes for this description, so a 'needs admin' handler should match all three permission wordings (this one, not enough rights to send ... to the chat, and CHAT_WRITE_FORBIDDEN) with one code path. Setup steps for granting a support bot the right admin permissions are on the Telegram chatbot page.
Official reference: Telegram Bot API reference. See all Telegram error codes or the Telegram limits and quotas.
Related codes
- 400: Bad Request: not enough rights to send text messages to the chatBad Request: not enough rights to send text messages to the chat
- 400: Bad Request: CHAT_WRITE_FORBIDDENBad Request: CHAT_WRITE_FORBIDDEN
- 403: Forbidden: bot was kicked from the group chatForbidden: bot was kicked from the group chat
- 403: Forbidden: bot is not a member of the channel chatForbidden: bot is not a member of the channel chat
Error 400 - quick answers
What does Telegram error 400 mean?
The bot is in the chat and the chat exists, but the bot's current permissions do not allow it to post there. Telegram reports this as a 400 rather than a 403 because the request is malformed from Telegram's point of view: you asked a member without send rights to send.
How do I fix Telegram error 400?
1. Call getChatMember with the bot's own ID and read status and the can_send_messages / can_post_messages fields. 2. Ask the chat owner to promote the bot or lift the restriction; there is no API call that a bot can make to grant itself rights. 3. For channels, add the bot as an administrator with posting enabled. 4. Re-test with a single sendMessage before re-enabling bulk sends to that chat.
Stop debugging Telegram by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.