Slack · api · fg-0355

chat.postMessage returns not_in_channel for a bot posting to a public channel

not_in_channel from chat.postMessage

Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100

Cause

New Slack apps can only post where the bot is a member. Posting to any public channel without joining needs the chat:write.public scope, and private channels always need an invite.

Fix

Add chat:write.public and reinstall, or call conversations.join for public channels. For private channels, invite the bot with /invite.

Apply

client.conversations_join(channel=channel_id)  # needs channels:join
client.chat_postMessage(channel=channel_id, text="Build finished")

Affects: Slack apps using granular bot scopes, as of 2026-10

Sources

Have your agent know this before it fails

claude mcp add --transport http footgun https://getfootgun.com/api/mcp