Telegram Bot API · error code

Telegram error 403: Forbidden: bot is not a member of the channel chat

ConfigurationHTTP 403403 Forbidden: blocked, kicked, not started

Last verified against Telegram Bot API reference

What Telegram returns
Forbidden: bot is not a member of the channel chat

What error 403 means

The bot tried to act in a channel it does not belong to. In channels, bots participate only as administrators; there is no 'regular member' state for a bot. If the bot was never added as an admin, or was removed from the admin list, Telegram returns this description. You will see it from sendMessage to the channel, from getChat on some channels, and from methods like pinChatMessage or deleteMessage targeting channel posts.

Compare with bot was kicked from the channel chat, which Telegram uses when the bot was explicitly banned, and with CHAT_WRITE_FORBIDDEN / have no rights to send a message, which indicate the bot is present but lacks the posting right. Here, the bot is simply absent.

Channel IDs begin with -100; a public channel can also be addressed as @username.

What it looks like

{"ok":false,"error_code":403,"description":"Forbidden: bot is not a member of the channel chat"}

Why it happens

  • The channel ID in config belongs to a channel the bot was never added to (often a staging vs production mix-up).
  • The bot was removed from the channel's administrators.
  • The bot was added as a subscriber via a link, which does not make it an administrator.

How to fix Telegram error 403

  1. 1Open the channel's administrators list and add the bot with Post messages (and any other rights you need).
  2. 2Verify with getChatMember (chat_id = channel, user_id = bot id) that status is administrator.
  3. 3Check that the ID in configuration is the intended channel; resolve @username with getChat to confirm.
  4. 4Listen for my_chat_member to detect future removals.

How to stop it recurring

Make channel onboarding a guided step: ask the admin to add the bot, then have your bot confirm its own admin status via getChatMember before saving the channel. Store the channel's numeric ID, not the username, because usernames can change.

The neighboring failures draw the map: present-but-restricted returns CHAT_WRITE_FORBIDDEN, banned returns bot was kicked, and absent returns this. Channel onboarding for a support bot, including the admin-rights checklist, is described on the Telegram chatbot page.

Official reference: Telegram Bot API reference. See all Telegram error codes or the Telegram limits and quotas.

Related codes

Error 403 - quick answers

What does Telegram error 403 mean?

The bot tried to act in a channel it does not belong to. In channels, bots participate only as administrators; there is no 'regular member' state for a bot. If the bot was never added as an admin, or was removed from the admin list, Telegram returns this description.

How do I fix Telegram error 403?

1. Open the channel's administrators list and add the bot with Post messages (and any other rights you need). 2. Verify with getChatMember (chat_id = channel, user_id = bot id) that status is administrator . 3. Check that the ID in configuration is the intended channel; resolve @username with getChat to confirm. 4. Listen for my_chat_member to detect future removals.

Stop debugging Telegram by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.