#Update 4.22 -> 5.18 = Gateway unreachable and all Discord bots are offline

1 messages · Page 1 of 1 (latest)

tender elm
#

I upgrade from 2026.4.22 to 2026.5.18 and I have have two major issues:

  1. Gateway is unreachable in Chrome via https://127.0.0.1:18789, BUT is reachable via Tailscale magic DNS URL.
    My gateway config is:
"gateway": {
    "mode": "local",
    "auth": {
      "mode": "token",
      "token": "${GTW_TOKEN}",
      "allowTailscale": true
    },
    "port": 18789,
    "bind": "loopback",
    "tailscale": {
      "mode": "serve",
      "resetOnExit": true
    },
    "controlUi": {
      "allowedOrigins": [
        "https://<my-magic-dns>.ts.net"
      ]
    }
  },
  1. All Discord bots are offline. Openclaw doctor doesn't tell me anything useful. I notice that between theese versions something introduced NPM folder with its own node modules and discord plugin.

Can you help me to understand what has broken? I restarted gateway many times.

ionic crescentBOT
#

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

shrewd robinBOT
abstract oakBOT
# tender elm I upgrade from 2026.4.22 to 2026.5.18 and I have have two major issues: 1) Gatew...

Nofate, two likely separate things here.

For the gateway URL: with the config you posted, the local listener is still plain HTTP unless you also set gateway.tls.enabled: true. Tailscale Serve gives you the HTTPS MagicDNS URL externally, but it can still be forwarding to local http://127.0.0.1:18789.

So try local as:

http://127.0.0.1:18789

not https://127.0.0.1:18789.

Also, because you set an explicit gateway.controlUi.allowedOrigins containing only the Tailscale origin, add localhost origins too if you want browser Control UI/WebSocket connects from local Chrome:

controlUi: {
abstract oakBOT
# tender elm I upgrade from 2026.4.22 to 2026.5.18 and I have have two major issues: 1) Gatew...
  allowedOrigins: [
    "https://<my-magic-dns>.ts.net",
    "http://127.0.0.1:18789",
    "http://localhost:18789"
  ]
}

Docs: https://docs.openclaw.ai/gateway/configuration-reference#gateway and https://docs.openclaw.ai/gateway/troubleshooting#dashboard-control-ui-connectivity

For Discord: the npm/plugin folder is probably expected. Recent OpenClaw builds moved bundled channel plugin runtime deps out of core and into plugin-owned dependency areas. That said, “all Discord bots offline” after upgrade smells like bundled plugin dependency repair/import failing, a missing service env var, or the channel failing before login.

Best next commands to narrow it down:

abstract oakBOT
# tender elm I upgrade from 2026.4.22 to 2026.5.18 and I have have two major issues: 1) Gatew...
openclaw --version
openclaw status --all
openclaw gateway status
openclaw channels status --probe
openclaw logs --follow

In the logs, look specifically for discord, plugin, Cannot find package 'openclaw', runtime deps, repair, or token/env resolution errors. Discord token resolution is account-aware: DISCORD_BOT_TOKEN only applies to the default account, and if OpenClaw is running as a daemon/service it may not inherit your shell env.

Discord docs: https://docs.openclaw.ai/channels/discord
Channel troubleshooting: https://docs.openclaw.ai/channels/troubleshooting

If you paste the sanitized output of openclaw channels status --probe plus the Discord/plugin-related log lines, we can tell whether it is config/token/env drift or the packaged plugin dependency issue.

tender elm
#

Output from channels status:

🦞 OpenClaw 2026.5.18 (50a2481) — Like having a senior engineer on call, except I don't bill hourly or sigh audibly.

│
◇  
Gateway reachable.

Tip: status --deep adds gateway health probes to status output (requires a reachable gateway).

And the only logs I see for Discord is:

warn plugins {"subsystem":"plugins"} [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: discord (~/.openclaw/npm/node_modules/@openclaw/discord/dist/index.js). Set plugins.allow to explicit trusted ids.
abstract oakBOT
# tender elm Output from channels status: ``` 🦞 OpenClaw 2026.5.18 (50a2481) — Like having a...

That output looks like openclaw status, not openclaw channels status --probe — it only proves the gateway RPC is reachable, not that Discord loaded or logged in.

The plugin warning itself is not the failure. It means OpenClaw found a non-bundled Discord plugin under ~/.openclaw/npm/node_modules/@openclaw/discord/... and your plugins.allow is open/empty. That is a trust warning, not “Discord is online”. If you later set plugins.allow, make sure it includes discord, otherwise you can block the plugin from loading.

Please run these exactly, with secrets redacted:

openclaw channels status --probe
openclaw config get channels.discord
openclaw config get plugins
openclaw plugins list
openclaw logs --tail 300 | rg -i "discord|plugin|gateway|token|secret|login|ready|error|warn"

What I’m looking for:

  • Does channels.discord.enabled still show true?
abstract oakBOT
# tender elm Output from channels status: ``` 🦞 OpenClaw 2026.5.18 (50a2481) — Like having a...
  • Is the token configured as channels.discord.token or only via DISCORD_BOT_TOKEN?
  • If it is env-only, is OpenClaw running as a daemon/service? Services often do not inherit your shell env after upgrades.
  • Does plugins.allow exist? If yes, it must include discord.
  • Does the log have a Discord login/ready line, or does it stop at plugin discovery?

Docs for the relevant bits:
https://docs.openclaw.ai/channels/discord
https://docs.openclaw.ai/channels/troubleshooting
https://docs.openclaw.ai/tools/plugin

tender elm
#

The config was missing explicit ""discord": {
"enabled": true,
"config": {}
}" enabled field. It's fixed now.

abstract oakBOT
# tender elm The config was missing explicit ""discord": { "enabled": true, "...

Nice, that tracks with the symptom: the plugin was discoverable, but Discord itself was not explicitly enabled, so there was nothing for the channel runtime to bring online.

Glad you found it. If this fixed the thread, please right-click the solution message → Apps → ✅ Mark Solution so Answer Overflow indexes the actual fix for the next upgrade case.

tender elm
#

Reaching local gateway via http also worked. Seems like this "gateway.tls.enabled: true" was added later in some versions

abstract oakBOT
# tender elm Reaching local gateway via http also worked. Seems like this "gateway.tls.enable...

Yep, that sounds right. Current docs say the gateway listener is plain HTTP/WSS-off by default; gateway.tls.enabled: true is what turns the local listener into HTTPS/WSS.

Tailscale Serve can make the MagicDNS side HTTPS while still forwarding to local http://127.0.0.1:18789, so those two URLs can legitimately differ:

local:     http://127.0.0.1:18789
tailscale: https://<magicdns>.ts.net

If you want local https://127.0.0.1:18789, you’d need gateway.tls.enabled: true plus cert config or autoGenerate, but for a same-machine browser http://127.0.0.1:18789 is the normal path.

Docs: https://docs.openclaw.ai/gateway/configuration-reference#gatewaytls