Skip to content

Fix OpenClaw Discord Errors: Intents, Permissions, and Silent Bots

·7 min read·By Christopher Kvamme

OpenClaw was previously known as Clawdbot and Moltbot. Configuration and commands depend on the version in use.

Fix OpenClaw Discord errors: 4014 intent issues, missing permissions 50013, silent bots, requireMention config, and guild allowlists with real solutions.

Fix OpenClaw Discord Errors: Intents, Permissions, and Silent Bots
Share:
On this page

Jump to your error

Check your OpenClaw logs first. Run openclaw logs --follow, trigger the error, and match what you see:

Each error also has a dedicated deep-dive guide linked above. The full troubleshooting reference continues below.

Key takeaways

Error 4014 means you forgot to enable Message Content Intent in the Discord developer portal. Silent bots usually need Server Members Intent or aren't in your guild allowlist. Permission errors come from wrong role hierarchy or missing channel permissions.

Overview

Your OpenClaw (previously known as Clawdbot and Moltbot) agent should appear online in Discord and respond to messages. When it doesn't, you're dealing with intents (4014 is the classic), permissions, mention settings, or allowlist issues. Discord's security model is stricter than Telegram's, so there's more to configure upfront.

Discord Gateway Error 4014

This is the error everyone hits first. Your logs show:

text

Error: Disallowed intent(s): MESSAGE_CONTENT
Code: 4014

The gateway crashes immediately on startup. I ran into this the first time I set up a Discord bot and couldn't figure out why the connection kept failing. Turns out Discord hides the intent toggles pretty deep in the developer portal. Why this happens:

Discord requires you to manually enable "Message Content Intent" for bots that need to read message text. It's a privacy feature Discord introduced to protect user message content. OpenClaw can't process your messages without it, so Discord blocks the connection entirely.

The fix:

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:

bash

openclaw gateway restart

Check the logs:

bash

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 a large number of servers, Discord may require verification before enabling Message Content Intent. Check the Discord developer documentation for current verification thresholds and submit your bot for verification if prompted.

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:

bash

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:

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:

json

"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:

text

Pairing request from guild 1234567890123456789 (My Server)

Approve it:

bash

openclaw pairing approve discord 1234567890123456789

Check pending pairings anytime:

bash

openclaw pairing pending

After approval, the bot responds immediately.

Permission errors: bot cannot read or write

The bot shows online but crashes the moment you try to use it. Your logs fill up with:

text

DiscordAPIError: Missing Permissions
Code: 50013

This one is frustrating because the bot looks fine. It's online, it's in your server, but it can't actually do anything. I've debugged this by dragging the bot role up and down the role list half a dozen times.

Check channel permissions first

Discord has server-level AND channel-level permissions. Your bot might have full permissions at the server level but be blocked in the specific channel you're trying to use.

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:

text

@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:

json

{
  "channels": {
    "discord": {
      "accounts": {
        "default": {
          "requireMention": false
        }
      }
    }
  }
}

Restart the gateway:

bash

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:

json

{
  "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:

json

{
  "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:

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:

json

"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:

bash

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 defaults to "Playing" status. Change it by editing the presence config:

json

{
  "channels": {
    "discord": {
      "accounts": {
        "default": {
          "presence": {
            "status": "online",
            "activities": [
              {
                "name": "with AI",
                "type": "PLAYING"
              }
            ]
          }
        }
      }
    }
  }
}

Change name to whatever you want. Type options: PLAYING, WATCHING, LISTENING, STREAMING.

Can I use slash commands with OpenClaw?

Yes. Enable the applications.commands scope when you generate your bot invite URL in the Discord developer portal. OpenClaw registers slash commands automatically if configured. The exact setup depends on your OpenClaw version - check the docs for your specific version.

The bot lags and replies 10-20 seconds late. Why?

Discord rate limits. If your bot sends too many messages too fast, Discord throttles it. OpenClaw respects rate limits automatically, but you'll see delays in busy channels. This is a Discord platform limitation, not fixable in config.

I get "unknown guild" errors in logs. What does that mean?

Your bot was kicked from that server but your config still lists the guild ID. Either remove the guild ID from your guilds array in config, or ignore the error if you're planning to re-invite the bot.

How do I run multiple Discord bots in one OpenClaw instance?

Add multiple accounts under channels.discord.accounts:

json

{
  "channels": {
    "discord": {
      "accounts": {
        "bot1": {
          "token": "token_here",
          "guilds": ["server1"]
        },
        "bot2": {
          "token": "token_here",
          "guilds": ["server2"]
        }
      }
    }
  }
}

Each needs its own token. You can set separate guild/channel allowlists per bot.

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.

Changelog

  • 2026-02-14: Initial publication
  • 2026-02-25: Added changelog, structural improvements
  • 2026-03-01: Renamed 4014 section heading to "Discord Gateway Error 4014" for better search matching.

Articles in this guide

Fix OpenClaw Discord Bot Not Responding: Silent Bot DiagnosisFix an OpenClaw Discord bot that connects but stays silent. Diagnostic flowchart covering pairing approval, server members intent, guild allowlist, and log analysis.Mar 7, 2026Fix OpenClaw Discord Bot in Wrong Channels or ServersFix your OpenClaw Discord bot responding in wrong channels or servers. Configure guild and channel allowlists, find Discord IDs, and manage multi-server setups.Mar 7, 2026Fix OpenClaw Discord Gateway Error 4014: Missing IntentsFix OpenClaw Discord gateway error 4014 by enabling Message Content Intent in the Discord developer portal. Step-by-step walkthrough with verification.Mar 7, 2026Fix OpenClaw Discord Permission Errors: Missing Permissions 50013Fix OpenClaw Discord permission error 50013 by checking channel permissions, role hierarchy, and bot invite scopes. Includes the minimum permission set and reinvite walkthrough.Mar 7, 2026Fix OpenClaw Discord requireMention: Bot Ignoring MessagesFix OpenClaw Discord requireMention so your bot responds to all messages or only mentions. Covers config options, thread behavior, allowBots, and per-channel workarounds.Mar 7, 2026
Did I get something wrong? Or have any other feedback? Let me know here.

More from Stack Junkie.

Get new articles by email.

More guides in The OpenClaw Handbook

Related Articles

channels

Fix OpenClaw Discord Bot Not Responding: Silent Bot Diagnosis

Mar 7, 2026·6 min read
channels

Fix OpenClaw Discord Bot in Wrong Channels or Servers

Mar 7, 2026·5 min read
channels

Fix OpenClaw Discord Gateway Error 4014: Missing Intents

Mar 7, 2026·6 min read