Calling app.client.chat.postMessage in a Bolt app with the channel ID of a direct message or private group returns channel_not_found, while posting to public channels the bot was invited to works fine. The bot user OAuth token is used. The same call pattern succeeds for public channels, so the token itself is valid.
channel_not_found when posting to DM or private group with Slack Bolt
- chat.postMessageservice
- bolt-jslibrary
- app.clientlibrary
- bot user OAuth tokenproduct
- direct messageproduct
- +5 more
channel_not_found here means the bot user is not a member of that conversation. A bot can only chat.postMessage to DMs and private groups it has been added to. Fix: invite the bot user to the DM/private group (or have a user start a DM with the bot), then the same chat.postMessage call succeeds. If you need to reply from a slash command, prefer respond() over say()/chat.postMessage in the listener, which posts back into the originating conversation without needing membership. Source: https://github.com/slackapi/bolt-js/issues/365
Source: https://github.com/slackapi/bolt-js/issues/365