This looks like OpenClaw getting the Slack channel event, running the agent, then failing the outbound delivery path. The string Delivery: to send a message, use the message tool. is OpenClaw guidance leaking into the session, not a Slack API error by itself.
First thing: can you share openclaw --version? Version matters a lot here.
Things I’d check in order:
- If you have any
tools.allow / per-agent agents.list[].tools.allow configured, make sure the real tool name message is allowed, or use group:messaging / tools.profile: "messaging". Don’t use provider names like slack.message; current docs list the shared message tool as message.
- Confirm the Slack channel is allowed:
channels.slack.groupPolicy, channels.slack.channels, requireMention, and any per-channel users allowlist.
- Confirm the Slack app has the bot scopes from the manifest, especially
chat:write plus the channel read/event scopes, and that the app is actually in the channel.
- Run:
openclaw channels status --probe
openclaw status --all
openclaw logs --follow
Then look for a real Slack send error like not_in_channel, channel_not_found, missing_scope, or a tool allowlist warning.