When Your Bot Just Sits There
You set up OpenClaw. You connected it to Slack. You @mentioned it and... nothing. No response, no error in the channel, just silence. This is the most frustrating OpenClaw experience because the bot gives you zero feedback in Slack when something is wrong. The answers are always in the logs.
Here are the 10 errors we see most often, with the actual error messages and how to fix them.
1. not_authed
[ERROR] Slack API Error: not_authed
[ERROR] Failed to connect: invalid bot token
This means your SLACK_BOT_TOKEN (the xoxb- token) is wrong. Either it's been revoked, it was never set correctly, or you're accidentally using the app-level token in the bot token field.
Fix: Go to api.slack.com/apps, find your app, go to "OAuth & Permissions," and copy the Bot User OAuth Token. Make sure it starts with xoxb-. Paste it into your .env file and restart OpenClaw.
Happens more often than you'd think. One team spent three hours debugging this only to realize they had a trailing space after the token in their .env file. Whitespace kills.
2. invalid_auth (Socket Mode)
[ERROR] Socket Mode connection failed: invalid_auth
[ERROR] App-Level Token rejected
Different from #1. This is the SLACK_APP_TOKEN (the xapp- token) being wrong. This token is only used for Socket Mode connections.
Fix: Go to your app settings, click "Basic Information," scroll to "App-Level Tokens." If you don't see any tokens, you need to create one with the connections:write scope. If you see one, regenerate it and update your config.
3. missing_scope
[ERROR] Slack API Error: missing_scope
[ERROR] Required scope: chat:write, Current scopes: app_mentions:read,channels:read
Your bot doesn't have the right OAuth scopes. The error message actually tells you which scope is missing, which is nice. The annoying part is that adding scopes requires reinstalling the app to your workspace.
Fix: Go to "OAuth & Permissions" in your app settings. Add the missing scope to "Bot Token Scopes." Then click "Reinstall to Workspace" at the top of the page. You'll get a new bot token; update your config with it. For the full list of required scopes, see our setup guide.
4. channel_not_found
[ERROR] Slack API Error: channel_not_found
[ERROR] Cannot post to channel: C0XXXXXXXXX
The bot is trying to post to a channel it hasn't been invited to. OpenClaw can only see and post in channels where it's a member. This is a Slack security feature, not a bug.
Fix: Invite the bot to the channel. Either type /invite @your-bot-name in the channel or add it through the channel's member settings. If it's a private channel, you need to be a member of that channel to invite the bot.
5. Socket Mode Disconnects
[WARN] Socket Mode connection lost. Reconnecting...
[WARN] Reconnection attempt 1 of 5
[WARN] Reconnection attempt 2 of 5
[ERROR] Socket Mode reconnection failed after 5 attempts
The WebSocket connection to Slack dropped and couldn't be re-established. This happens for a few reasons: network instability, VPS provider maintenance, Slack's own outages (check status.slack.com), or your server running out of memory and the Node.js process crashing.
Fix: First, check if it's a Slack issue (status.slack.com). If Slack is fine, restart OpenClaw. If it keeps happening, check your server's memory usage (free -m) and network connectivity. If you're on a cheap VPS with limited bandwidth, Socket Mode's persistent connection can get killed by aggressive TCP timeout settings. Increasing net.ipv4.tcp_keepalive_time on the server sometimes helps.
If disconnects are frequent and you need reliability, consider switching to HTTP mode.
6. rate_limited
[WARN] Slack API rate limited. Retry after 30s
[WARN] Rate limit hit on chat.postMessage (tier 3)
You're sending too many API calls too quickly. Slack rate limits are per-method and per-workspace, roughly 1 request per second for most methods with burst allowances. If OpenClaw is processing a lot of messages simultaneously (like during an incident or a big channel import), it can hit these limits.
Fix: OpenClaw 0.49+ handles rate limiting internally with automatic backoff. If you're still seeing this, make sure you're on the latest version. If you're running custom skills that make direct Slack API calls, those might not be going through OpenClaw's rate limiter. Route them through the built-in Slack client instead.
7. context_length_exceeded
[ERROR] LLM Error: context_length_exceeded
[ERROR] Total tokens (215,847) exceeds model maximum (200,000)
The total context (MEMORY.md + SOUL.md + thread messages + skill instructions) is bigger than the LLM's context window. This usually happens in very long threads or when MEMORY.md has grown too large.
Fix: Short term: prune your MEMORY.md file. Remove outdated information and keep it under 5,000 words. Long term: configure context compaction more aggressively by setting OPENCLAW_COMPACT_THRESHOLD=0.6 (start compacting when context reaches 60% of the window instead of the default 80%). For a deeper understanding, read our memory guide.
8. Bot Responds to Itself
# No error in logs, but the bot keeps replying to its own messages
# creating an infinite loop in the channel
This isn't a Slack API error; it's a configuration issue. The bot is subscribed to message events in a channel it posts in, and it doesn't filter out its own messages.
Fix: OpenClaw should handle this by default (it ignores messages from its own bot user ID). If it's not working, check that your event subscription is using message.channels and not a broader event type. Also check if you have a custom skill that's posting messages without going through the built-in Slack client; those messages might not carry the bot flag.
9. skill_execution_error
[ERROR] Skill execution failed: github-pr-notifier
[ERROR] TypeError: Cannot read properties of undefined (reading 'pull_requests')
[ERROR] Skill error at skills/github-pr-notifier/index.js:47:23
A skill crashed. The error message usually points to the exact line. Common causes: the external API returned an unexpected format, OAuth tokens for the integration expired, or the skill has a bug.
Fix: Check the specific error. If it's an API-related error, verify that your integration tokens are still valid. If it's a code bug in a third-party skill, check the skill's GitHub repo for issues or updates. If the skill was flagged in ClawHavoc, remove it immediately and find a safe alternative from our recommended list.
10. MEMORY.md Permission Errors
[ERROR] Failed to write MEMORY.md: EACCES permission denied
[ERROR] Memory update failed: /opt/openclaw/MEMORY.md
OpenClaw can't write to the MEMORY.md file. This happens when the file's ownership or permissions don't match the user OpenClaw is running as. Common after Docker container restarts or when running as a different user than the one who created the files.
Fix: Check the file permissions:
ls -la /opt/openclaw/MEMORY.md
# If owned by root but OpenClaw runs as node:
chown node:node /opt/openclaw/MEMORY.md
In Docker, make sure the volume mount has the right permissions. Add user: "1000:1000" to your docker-compose.yml service definition, matching the UID of the user inside the container.
General Debugging Tips
Always check the logs first. Run docker compose logs -f or journalctl -u openclaw -f depending on your setup. The logs tell you everything. Slack won't show error messages in channels; the bot just stays silent.
Enable debug logging. Set OPENCLAW_LOG_LEVEL=debug temporarily. This is verbose (really verbose) but it shows every event received, every API call made, and every decision the agent makes. Turn it off after debugging; the log volume will eat your disk.
Test with a DM first. If the bot isn't working in a channel, try DMing it directly. If DMs work but channels don't, it's a channel-specific issue (not invited, wrong event subscriptions). If DMs don't work either, it's a fundamental connection issue.
Check Slack's side. Go to api.slack.com/apps, find your app, and check the "Event Subscriptions" page. It shows recent event deliveries and whether they succeeded. If events aren't being delivered at all, the problem is on Slack's side or in your app configuration, not in OpenClaw.
If you're tired of debugging connection issues and just want a bot that works, SlackClaw handles all of this infrastructure for you. No tokens, no Socket Mode, no permission errors. We manage the connection; you use the bot. That's the pitch. Check the self-hosted comparison if you're on the fence.