#Discord guilds unresolved after update to 2026.2.26

1 messages · Page 1 of 1 (latest)

dense vigilBOT
#

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

urban furnaceBOT
#

Two things make this exact “DMs work, guild channels dead after update” pattern super common in OpenClaw:

0) First: confirm version + what config the service is actually using

Please run and paste (safe output, tokens redacted):

openclaw --version
openclaw gateway status
openclaw status --all
openclaw channels status --probe

openclaw gateway status is key because after updates it’s easy to edit one openclaw.json while the daemon is running a different one (you’ll see “Config (cli)” vs “Config (service)” mismatches in that output).

1) Check Discord “Message Content Intent” (Developer Portal)

If Message Content Intent is OFF, Discord bots can still DM you, but guild messages often come through without usable content / won’t trigger properly.

#

Docs: https://docs.openclaw.ai/channels/discord (see “Enable privileged intents”)

2) Check groupPolicy + allowlist resolution (this matches your “guilds unresolved” logs)

If channels.discord.groupPolicy is "allowlist", OpenClaw will ignore guild messages unless the guild is allowlisted under channels.discord.guilds.

Also: if you only set DISCORD_BOT_TOKEN but your config is missing a channels.discord { ... } block entirely, OpenClaw intentionally fails closed for guilds (groupPolicy defaults to allowlist and blocks guild messages) and logs a warning like:

discord: channels.discord is missing; defaulting groupPolicy to "allowlist" ...

Docs section that explains this: https://docs.openclaw.ai/channels/discord (Guild policy tab)

Quick “narrow it down” test (temporary)

In your config (the one the service is using), try:

{
  channels: {
#
    discord: {
      enabled: true,
      groupPolicy: "open"
    }
  }
}

Restart gateway, then test in a channel while mentioning the bot once.

If that fixes it, the issue is definitely allowlist/guild key mismatch (often people used the raw guild name as the object key instead of the slug or numeric ID).

3) Mention-gating changed expectations

In guilds, OpenClaw defaults to requireMention: true unless you override it. So if you weren’t @mentioning the bot in channels, it will look like it’s ignoring you.

To allow normal chat in a private server:

#
{
  channels: {
    discord: {
      groupPolicy: "allowlist",
      guilds: {
        "YOUR_GUILD_ID": {
          requireMention: false
        }
      }
    }
  }
}

If you paste the outputs from step (0) plus the redacted channels.discord section (no token), I can tell you which of the above is actually happening.

fast heron
#

@urban furnace i cannot paste the output of step 0 because it is too long.

urban furnaceBOT
#

Yep — don’t paste the whole Step 0 blob into Discord.

Do one of these instead:

Option A (best): upload as a file

Run on the gateway host:

openclaw --version > /tmp/oc-debug.txt
openclaw gateway status >> /tmp/oc-debug.txt
openclaw channels status --probe >> /tmp/oc-debug.txt
openclaw status --all >> /tmp/oc-debug.txt

Then attach /tmp/oc-debug.txt in this thread (drag & drop).
Before uploading, quick-scan it to ensure no secrets slipped through (it should redact, but still worth a glance).

#

Option B: paste only the 3 high-signal snippets

If you’d rather paste text, just paste:

  1. openclaw --version

  2. From openclaw gateway status:

  • the lines that show Config (service) path (and any “Config (cli) vs Config (service)” mismatch)
  1. From openclaw channels status --probe:
  • the Discord section (the part that mentions guilds / unresolved / intents / groupPolicy)

One quick thing to check right now (no logs needed)

Since DM works but guild channels don’t, the #1 culprit is Discord Developer Portal intents:

  • Bot → Privileged Gateway Intents → enable Message Content Intent
  • (Recommended too: Server Members Intent if you use role allowlists or name matching)
#

Then openclaw gateway restart and retest in-channel.

If you share the small snippets (or the file), I can tell you immediately whether this is:

  • intent/content issue,
  • groupPolicy fail-closed + guild allowlist not matching,
  • or the daemon reading a different config than the one you edited.
fast heron
#

2026.2.26

Config (cli): ~/.openclaw/openclaw.json
Config (service): ~/.openclaw/openclaw.json

#

Gateway reachable.

  • Discord default: enabled, configured, running, bot:@OpenClaw AI Nick, token:config, intents:content=limited, works, audit ok

Warnings:

  • discord default: Some configured guild channels are not numeric IDs (unresolvedChannels=1). Permission audit can only check numeric channel IDs. (Use numeric channel IDs as keys in channels.discord.guilds.*.channels (then rerun channels status --probe).)
  • Run: openclaw doctor
urban furnaceBOT
#

Nice — that rules out the super-common “daemon is reading a different config” problem.

Next we need to figure out why guild messages are being dropped. The fastest way is to check the two policy knobs that would cause exactly “DMs work, channels don’t”:

1) What is your effective Discord group policy?

Run these (short output) and paste them:

openclaw config get channels.discord.groupPolicy
openclaw config get channels.defaults.groupPolicy

If either ends up being "allowlist", then guild messages will be ignored unless your guild matches channels.discord.guilds.

2) Are your guilds keys numeric IDs or names?

If you used the server name as the key (e.g. "My Cool Server"), that often won’t match. Prefer the numeric guild ID as the key.

#

A minimal “should definitely work” config shape is:

{
  channels: {
    discord: {
      groupPolicy: "allowlist",
      guilds: {
        "YOUR_GUILD_ID": {
          requireMention: false
        }
      }
    }
  }
}
#

(no channels sub-map at all = no per-channel restriction)

3) Paste just the Discord part of the probe

This is usually the smoking gun for “unresolved” / missing perms:

openclaw channels status --probe

You don’t need to paste all of it — just the Discord section (or attach it as a file if easier).

4) Quick sanity: intents

Even if allowlists are correct, missing intents can still make it look like the bot ignores channels. Confirm in Discord Dev Portal:

  • Message Content Intent = ON
  • (recommended) Server Members Intent = ON
    Then openclaw gateway restart.
#

If you paste (1) + whether your guild keys are numeric + the Discord probe section, I can tell you exactly which gate is blocking.

#

Good, that channels status --probe output is already super informative:

1) intents:content=limited is a red flag

That basically means your bot does not have Message Content Intent, so guild messages often arrive “content-stripped” and OpenClaw may ignore/drop them.

Fix (Discord Developer Portal → your app → Bot → Privileged Gateway Intents):

  • Message Content Intent: ON
  • (Recommended) Server Members Intent: ON (needed for role allowlists / some resolution)

Then restart:

openclaw gateway restart

Docs: https://docs.openclaw.ai/channels/discord (see “Enable privileged intents”)

#

2) The “unresolvedChannels=1” warning usually means your allowlist keys won’t match

This warning is triggered when you have something like:

channels: {
  discord: {
    guilds: {
      "...": {
        channels: {
          general: { ... }   // <- non-numeric key
        }
      }
    }
  }
}
#

Two important points:

  • The permission probe can only audit numeric channel IDs (so it warns).
  • And if you’re in groupPolicy: "allowlist" and you have a channels map configured for that guild, OpenClaw will block any channel that doesn’t match the allowlist key.

Fastest fix: use numeric IDs as keys (right click channel in Discord → Copy Channel ID):

channels: {
  discord: {
    groupPolicy: "allowlist",
    guilds: {
      "YOUR_GUILD_ID": {
        requireMention: false, // optional
        channels: {
          "YOUR_CHANNEL_ID": { allow: true }
#
        }
      }
    }
  }
}

Even faster debugging move: temporarily remove the channels: { ... } block under the guild entirely (that allows all channels in that allowlisted guild), confirm it responds, then add channel IDs back.

3) Tiny follow-up: what’s your groupPolicy right now?

Can you paste just this (short):

openclaw config get channels.discord.groupPolicy
#

If after enabling Message Content Intent + restart it still doesn’t answer in channels, the next thing I’d want is a 5-line log snippet from openclaw logs --follow right when you send a channel message, especially anything like:

  • discord: drop guild message ...
  • Blocked discord channel ... not in guild channel allowlist ...
fast heron
#

openclaw config get channels.discord.groupPolicy
openclaw config get channels.defaults.groupPolicy

🦞 OpenClaw 2026.2.26 (bc50708) — The only crab in your contacts you actually want to hear from. 🦞

allowlist

🦞 OpenClaw 2026.2.26 (bc50708) — Claws out, commit in—let's ship something mildly responsible.

Config path not found: channels.defaults.groupPolicy

Gateway reachable.

  • Discord default: enabled, configured, running, bot:@OpenClaw AI Nick, token:config, intents:content=limited, works, audit ok

Warnings:

  • discord default: Some configured guild channels are not numeric IDs (unresolvedChannels=1). Permission audit can only check numeric channel IDs. (Use numeric channel IDs as keys in channels.discord.guilds.*.channels (then rerun channels status --probe).)

keys are numeric and match right click copy id.

urban furnaceBOT
#

That output basically nails what’s happening:

  • channels.discord.groupPolicy = allowlist ⇒ guild messages are fail-closed unless the guild allowlist + (optional) channel allowlist matches
  • intents:content=limited ⇒ Discord is not giving you full message content in guilds, and OpenClaw will often drop those messages as empty content (DMs still work, which matches your symptoms)

A) Fix the privileged intent first (most likely root cause)

In Discord Developer Portal → your app → Bot → Privileged Gateway Intents:

  • turn Message Content Intent ON
  • (recommended) turn Server Members Intent ON

Then restart the gateway:

openclaw gateway restart

After that, rerun:

#
openclaw channels status --probe

You want to see intents:content=enabled (not limited).

B) Double-check you’re not accidentally channel-restricting yourself

With groupPolicy=allowlist, if your guild entry has a channels: { ... } map, then only channels that match that map are allowed.

Fastest “prove allowlist is the issue” test: temporarily remove the per-channel allowlist for that guild (or set wildcard):

channels: {
  discord: {
    groupPolicy: "allowlist",
    guilds: {
#
      "YOUR_GUILD_ID": {
        // temporarily allow all channels in this guild
        // (either delete channels: {...} entirely, OR use wildcard)
        channels: { "*": { allow: true } }
      }
    }
  }
}

Restart and test in a normal text channel.

C) If it still doesn’t respond: grab the tiny log snippet that shows the drop reason

Run: