- Authors

- Name
- Jerry Smith
TLDR
OpenClaw Discord agents fail when intents are misconfigured in the developer portal, permissions are too restrictive, or requireMention is set wrong. Error 4014 means you forgot to enable Message Content Intent. Bots that join but do not respond usually lack Server Members Intent or are not in the guild allowlist. This guide fixes all of those.
Overview
When you connect your OpenClaw agent to Discord, the agent should appear online and respond to commands. But sometimes it crashes with error 4014, joins the server but stays silent, or throws permission errors. This happens because Discord requires explicit intent configuration and OpenClaw needs specific role permissions. This guide walks through the five most common Discord errors your agent encounters, why they happen, and how to fix them step-by-step. By the end, your agent will be responding reliably in Discord servers.
Error 4014: disallowed intents (Message Content Intent)
This is the most common Discord error with OpenClaw. The logs show:
Error: Disallowed intent(s): MESSAGE_CONTENT
Code: 4014
The bot refuses to connect and the gateway crashes on startup.
Why it happens
Discord requires you to explicitly enable "Message Content Intent" in the developer portal. Without it, bots cannot read message text in servers.
OpenClaw needs this intent to process commands and conversations. If it is not enabled, Discord blocks the connection with error 4014.
How to fix it
Go to the Discord Developer Portal and select your application.
Click "Bot" in the left sidebar. Scroll down to "Privileged Gateway Intents".
Enable these three intents:
- Presence Intent
- Server Members Intent
- Message Content Intent (this is the one that fixes 4014)
Click "Save Changes" at the bottom.
Now restart your OpenClaw gateway:
openclaw gateway restart
Check the logs:
openclaw logs --follow
You should see Discord channel started and Logged in as YourBot#1234. The 4014 error is gone.
If you still see 4014
Make sure you saved the changes in the developer portal. The "Save Changes" button is easy to miss.
Also verify you are editing the correct bot application. If you have multiple bots, double-check the application ID matches your bot token.
If your bot is in more than 100 servers, Discord requires verification before enabling Message Content Intent. Submit your bot for verification or remove it from some servers to get under 100.
Bot joins server but does not respond
Your bot appears online in the member list but never replies to messages. This is frustrating because there are no errors in the logs.
Missing server members intent
Your agent uses the Server Members Intent to track who is in the server and verify permissions. Without it, the agent sees messages but cannot process them properly.
Go back to the Discord Developer Portal, select your bot, click "Bot", and enable "Server Members Intent" under Privileged Gateway Intents.
Save and restart the gateway:
openclaw gateway restart
Guild not in allowlist
OpenClaw has a guilds allowlist in the config. If a server is not on the list, the bot ignores all messages there.
Edit ~/.openclaw/config/config.json:
{
"channels": {
"discord": {
"accounts": {
"default": {
"token": "your_token_here",
"guilds": ["1234567890123456789"]
}
}
}
}
}
Add your server's guild ID to the array. To find the guild ID, enable Developer Mode in Discord (User Settings > Advanced > Developer Mode). Then right-click your server icon and select "Copy Server ID".
If you want the bot to respond in all servers, set guilds to an empty array:
"guilds": []
This allows the bot to work in any server it joins. Be careful with this if your bot is public.
Pairing not approved
Just like Telegram, Discord requires pairing approval. When you add the bot to a server, OpenClaw logs:
Pairing request from guild 1234567890123456789 (My Server)
Approve it:
openclaw pairing approve discord 1234567890123456789
Check pending pairings anytime:
openclaw pairing pending
After approval, the bot responds immediately.
Permission errors: bot cannot read or write
The bot is online but crashes when you send a command. The logs show permission errors like:
DiscordAPIError: Missing Permissions
Code: 50013
Check channel permissions
Discord permissions work at both server and channel level. Your bot might have permissions in the server but not in specific channels.
Right-click the channel where the bot should respond and select "Edit Channel". Go to the "Permissions" tab.
Scroll down to your bot's role and make sure these permissions are enabled:
- View Channel
- Send Messages
- Embed Links
- Attach Files
- Read Message History
If the bot is green-lit (allowed) for all of these, save and try again.
Server role position
Discord roles have a hierarchy. A bot can only manage roles and permissions below its own role in the list.
Go to Server Settings > Roles. Drag your bot's role higher in the list, ideally right below the admin roles. This fixes most permission issues.
Reinvite the bot with correct scopes
If permissions are still wrong, the bot was invited with the wrong OAuth2 scopes.
Go to the Discord Developer Portal, select your bot, click "OAuth2" then "URL Generator".
Select these scopes:
- bot
- applications.commands (if you use slash commands)
Under "Bot Permissions", select:
- Send Messages
- Read Message History
- Embed Links
- Attach Files
- Use External Emojis
- Add Reactions
Copy the generated URL and open it in your browser. Select your server and authorize the bot again. This updates the permissions.
Requiremention misconfiguration
The bot responds sometimes but ignores most messages. This is usually a mention issue.
What requiremention does
By default, Discord bots in OpenClaw only respond when mentioned:
@YourBot what is the weather
Or when you reply directly to one of the bot's messages.
This prevents the bot from replying to every message in busy servers.
Turn off requiremention
If you want the bot to respond to all messages in certain channels, edit the config:
{
"channels": {
"discord": {
"accounts": {
"default": {
"requireMention": false
}
}
}
}
}
Restart the gateway:
openclaw gateway restart
Now the bot responds to any message in allowed channels.
Per-channel configuration
OpenClaw does not support per-channel requireMention yet. It is global for all channels the bot can access.
If you need different behavior in different channels, use two separate bots with different configs or set up channel-specific rules with Discord permissions.
Bot responding to other bots
By default, OpenClaw ignores messages from other bots to prevent loops. If you need your bot to respond to another bot, set allowBots in the config:
{
"channels": {
"discord": {
"accounts": {
"default": {
"allowBots": true
}
}
}
}
}
This is rarely needed and can cause infinite loops if two bots reply to each other.
Bot responding in wrong channels
The bot spams replies in channels where it should stay silent.
Use channel allowlist
Add a channels allowlist to restrict the bot to specific channels:
{
"channels": {
"discord": {
"accounts": {
"default": {
"guilds": ["1234567890123456789"],
"channels": ["9876543210987654321"]
}
}
}
}
}
The bot now only responds in the listed channel IDs. To find a channel ID, right-click the channel in Discord and select "Copy Channel ID" (Developer Mode must be enabled).
Deny permissions in unwanted channels
Alternatively, use Discord's built-in permissions. Go to the channel where the bot should not respond, edit channel permissions, find your bot's role, and disable "Send Messages".
This is cleaner than config allowlists because it is visible to server admins.
Guild allowlist issues
Your bot is in multiple servers but only responds in some of them.
Check the guilds array
The guilds config is an allowlist. If a server ID is not in the array, the bot ignores it.
Edit ~/.openclaw/config/config.json:
{
"channels": {
"discord": {
"accounts": {
"default": {
"guilds": ["1234567890123456789", "1111222233334444555"]
}
}
}
}
}
Add all server IDs where you want the bot to work.
Empty array allows all guilds
To allow the bot in every server:
"guilds": []
This is fine for private bots but risky for public bots. Anyone who invites your bot can use it.
Bot kicked from guild
If the bot was removed from a server and re-invited, the guild ID is the same but the pairing is gone. Approve the new pairing request:
openclaw pairing approve discord 1234567890123456789
Check the logs for pairing requests whenever you re-invite the bot.
Faq
My bot is online but shows "playing" status instead of a custom status. how do i fix it?
OpenClaw uses the default "Playing" status. To change it, edit the presence config:
{
"channels": {
"discord": {
"accounts": {
"default": {
"presence": {
"status": "online",
"activities": [{
"name": "with AI",
"type": "PLAYING"
}]
}
}
}
}
}
}
Change name to whatever you want. Type can be PLAYING, WATCHING, LISTENING, or STREAMING.
Can i use slash commands with openclaw?
Yes, but you need to enable the applications.commands scope when inviting the bot. OpenClaw registers slash commands automatically if you enable them in the config. Check the Discord setup guide for details.
The bot lags and replies 10-20 seconds late. why?
This is usually a rate limit issue. Discord bots get rate-limited if they send too many messages too fast. OpenClaw respects rate limits but the delay can be noticeable in busy channels. There is no config fix for this, it is a Discord limitation.
I get "unknown guild" errors in logs. what does that mean?
The bot was removed from the server but OpenClaw still has config for it. Remove the guild ID from your guilds array or ignore the error if you plan to re-invite the bot later.
How do i run multiple discord bots in one openclaw instance?
Add multiple accounts under the discord config:
{
"channels": {
"discord": {
"accounts": {
"bot1": {
"token": "token_here",
"guilds": ["server1"]
},
"bot2": {
"token": "token_here",
"guilds": ["server2"]
}
}
}
}
}
Each bot needs its own token and can have separate guild/channel allowlists.
Conclusion
Most Discord errors in OpenClaw are intent or permission issues. Enable Message Content Intent and Server Members Intent in the developer portal to fix 4014 and silent bot problems. Check guild and channel allowlists if the bot responds in some servers but not others. Use requireMention to control when the bot replies.
For complete setup instructions, see the OpenClaw Discord setup guide. If you are running OpenClaw on a remote server, the DigitalOcean VPS guide covers deployment. The official OpenClaw Discord docs have full config reference.
Enjoyed this post?
Get new articles delivered to your inbox. No spam, unsubscribe anytime.
Related Posts
Feb 14, 2026
Solved: OpenClaw Telegram 401 and silent bot errors
Fix OpenClaw Telegram agent errors: 401 unauthorized, allowFrom configuration, group pairing failures, silent bots, and chat ID issues now.
Feb 15, 2026
Proven fixes: 7 OpenClaw install and gateway errors
Fix OpenClaw agent install errors: npm failures, gateway crashes, Node version issues, port conflicts, and post-upgrade config problems now.
Feb 13, 2026
Automate OpenClaw with cron jobs: 3 proven methods
Learn OpenClaw cron jobs with three schedule types, real examples, and common mistakes. Automate your AI agent while you sleep.

Comments