openclaw - 💡(How to fix) Fix Discord channel stays disabled with no warning unless `plugins.entries.discord.enabled` is set

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

OpenClaw requires two independent enables to activate a channel plugin:

  1. channels.discord.enabled: true (channel-level)
  2. plugins.entries.discord.enabled: true (plugin-registry)

Channel-level enable alone is not sufficient. Without the plugin-registry enable, Discord reports installed, not configured, disabled forever. openclaw config validate passes, the gateway starts cleanly, and there are no Discord-related log lines — the failure is completely silent.

Error Message

| channels.discord.enabled: true with valid token | Discord connects or a clear error | installed, not configured, disabled; no logs | | Missing plugins.entries.discord.enabled | Startup WARN or implicit enable | Silent skip; validator silent |

  • Emit startup WARN when a channel is enabled but the plugin registry entry is disabled/missing.
  • Fail fast with an explicit operator-facing error.

Root Cause

OpenClaw requires two independent enables to activate a channel plugin:

  1. channels.discord.enabled: true (channel-level)
  2. plugins.entries.discord.enabled: true (plugin-registry)

Channel-level enable alone is not sufficient. Without the plugin-registry enable, Discord reports installed, not configured, disabled forever. openclaw config validate passes, the gateway starts cleanly, and there are no Discord-related log lines — the failure is completely silent.

Fix Action

Fix / Workaround

Workaround (AoAOS)

Code Example

{
  "gateway": {
    "auth": {
      "token": { "source": "env", "id": "OPENCLAW_GATEWAY_TOKEN" }
    }
  },
  "channels": {
    "discord": {
      "enabled": true,
      "name": "Test Discord",
      "token": {
        "source": "env",
        "provider": "default",
        "id": "DISCORD_BOT_TOKEN"
      }
    }
  }
}

---

"plugins": {
  "entries": {
    "discord": { "enabled": true }
  }
}
RAW_BUFFERClick to expand / collapse

Summary

OpenClaw requires two independent enables to activate a channel plugin:

  1. channels.discord.enabled: true (channel-level)
  2. plugins.entries.discord.enabled: true (plugin-registry)

Channel-level enable alone is not sufficient. Without the plugin-registry enable, Discord reports installed, not configured, disabled forever. openclaw config validate passes, the gateway starts cleanly, and there are no Discord-related log lines — the failure is completely silent.

Steps to reproduce

  1. Write a minimal config with channel-level Discord enabled but no plugins.entries:
{
  "gateway": {
    "auth": {
      "token": { "source": "env", "id": "OPENCLAW_GATEWAY_TOKEN" }
    }
  },
  "channels": {
    "discord": {
      "enabled": true,
      "name": "Test Discord",
      "token": {
        "source": "env",
        "provider": "default",
        "id": "DISCORD_BOT_TOKEN"
      }
    }
  }
}
  1. openclaw config validate — passes.

  2. Restart the gateway (systemctl --user restart openclaw-gateway on native install).

  3. openclaw channels list --all --plain — Discord shows disabled.

  4. openclaw channels logs --channel discord --lines 100 — no Discord plugin output.

  5. Add the plugin-registry enable and restart:

"plugins": {
  "entries": {
    "discord": { "enabled": true }
  }
}
  1. openclaw channels list --all --plain — Discord shows configured and enabled.

Expected vs actual

ExpectedActual
channels.discord.enabled: true with valid tokenDiscord connects or a clear errorinstalled, not configured, disabled; no logs
Missing plugins.entries.discord.enabledStartup WARN or implicit enableSilent skip; validator silent

Suggested fixes (any one):

  • Treat channels.<x>.enabled: true as implicit plugins.entries.<x>.enabled: true when unset.
  • Emit startup WARN when a channel is enabled but the plugin registry entry is disabled/missing.
  • Fail fast with an explicit operator-facing error.

Environment

  • OpenClaw 2026.5.12 (reproduced on native install; first observed on 2026.5.7)
  • Ubuntu 24.04, NUC1 native (systemctl --user gateway)
  • @openclaw/discord aligned via npm install @openclaw/discord@latest + openclaw doctor --fix

Workaround (AoAOS)

openclaw/setup-native.sh step 7 writes both enables in an atomic Python rewrite of ~/.openclaw/openclaw.json. Operator notes: docs/runbook/discord-migration-notes.md.

Local doc

docs/upstream-bugs/plugins-entries-explicit-enable-required.md (setup-native Bug #4; highest priority per AOAOS-27)

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Discord channel stays disabled with no warning unless `plugins.entries.discord.enabled` is set