#Bot Discord Setup Issue

1 messages · Page 1 of 1 (latest)

solemn plankBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

north pondBOT
#

If DMs work but zero guild MESSAGE_CREATE ever shows up, that usually collapses to one of these:

  1. The Gateway service is running a different config file than the one you edited (so your groupPolicy/guilds/requireMention changes aren’t actually applied).
  2. Guild messages are being dropped by allowlist/mention gating, most often because the allowlist doesn’t match what you think (wrong guild ID, empty channels map, testing inside a thread/forum, etc.).
  3. The Discord connection is up but the runtime intents don’t include guild message events (rare unless you overrode intents, but it’s easy to verify).

1) First check: are you editing the config the service is actually using?

Run:

openclaw gateway status

Look for the line about Config (cli) vs Config (service). If they differ, you’re editing one file while the daemon is running another. Fix is:

#
openclaw gateway install --force
openclaw gateway restart

(FAQ section: https://docs.openclaw.ai/help/faq)

2) Verify what intents + permissions the Gateway thinks it has

These two commands are super high-signal for Discord issues:

openclaw channels capabilities --channel discord
openclaw channels status --probe

Please paste the Discord section of both outputs.

#

Docs:

3) Common config gotchas with groupPolicy: "allowlist"

Please sanity-check these (or paste your channels.discord block with the token redacted):

  • The allowlist must be under channels.discord.guilds (plural), keyed by the numeric guild ID.
  • If you define a per-guild channels map, then only those channels are allowed. An empty channels: {} effectively blocks everything.
  • If you’re testing in a thread / forum post, the event’s channel is a thread. OpenClaw says threads inherit parent config, but if your allowlisting is tight, this is exactly where mismatches show up—channels status --probe should make it obvious.

4) Fast isolation test (to separate “Discord gateway” vs “allowlist/gating”)

Temporarily set:

channels: { discord: { groupPolicy: "open" } }