#Completion cache update failed: Error: spawnSync /usr/bin/node ETIMEDOUT after update

1 messages Β· Page 1 of 1 (latest)

sterile reef
#

System is sloooooow and noticed an error after updating. system is unresponsive most of the time, but some messages come through eventually - but no way possible to have a conversation with my agent(s)

half latchBOT
#

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

opal sphinxBOT
#

That specific error β€” Completion cache update failed: ... spawnSync /usr/bin/node ETIMEDOUT β€” is usually not the main agent slowdown. It’s the post-update shell completion cache timing out; it mostly affects CLI tab completion.

First thing: please paste this read-only triage output:

openclaw --version
which openclaw
openclaw status --all
openclaw gateway status --deep

If status --all hangs, skip it and do:

openclaw logs --tail 120
sterile reef
#

broedkrummen@ubuntu-8gb-fsn1-1:~$ openclaw --version
which openclaw
openclaw status --all
openclaw gateway status --deep
OpenClaw 2026.4.26 (be8c246)
/home/broedkrummen/.npm-global/bin/openclaw

🦞 OpenClaw 2026.4.26 (be8c246) β€” We ship features faster than Apple ships calculator updates.

β”‚
OpenClaw status --all

Overview
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Item β”‚ Value β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Version β”‚ 2026.4.26 β”‚
β”‚ OS β”‚ linux 6.8.0-90-generic (x64) β”‚
β”‚ Node β”‚ 22.22.2 β”‚
β”‚ Config β”‚ ~/.openclaw/openclaw.json β”‚
β”‚ Dashboard β”‚ https://127.0.0.1:18888/ β”‚
β”‚ Tailscale exposure β”‚ serve Β· unknown Β· ubuntu-8gb-fsn1-1.taila0448b.ts.net Β· https://ubuntu-8gb-fsn1-1. β”‚
β”‚ β”‚ taila0448b.ts.net β”‚
β”‚ Channel β”‚ stable (default) β”‚
β”‚ Update β”‚ pnpm Β· up to date Β· npm latest 2026.4.26 β”‚
β”‚ Gateway β”‚ local Β· wss://127.0.0.1:18888 (local loopback) Β· unreachable (timeout) β”‚
β”‚ Security β”‚ Run: openclaw security audit --deep β”‚
β”‚ Gateway self β”‚ unknown β”‚
β”‚ Gateway service β”‚ systemd installed Β· enabled Β· running (pid 192720, state active) β”‚
β”‚ Node service β”‚ systemd not installed β”‚
β”‚ Agents β”‚ 4 total Β· 0 bootstrapping Β· 1 active Β· 16 sessions β”‚
β”‚ Secrets β”‚ none β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Channels
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Channel β”‚ Enabled β”‚ State β”‚ Detail β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Agents
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Agent β”‚ Bootstrap file β”‚ Sessions β”‚ Active β”‚ Store β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ nova (Nova) β”‚ ABSENT β”‚ 8 β”‚ 1m ago β”‚ ~/.openclaw/agents/nova/sessions/sessions.json β”‚
β”‚ archimedes (Archimedes) β”‚ ABSENT β”‚ 3 β”‚ 15h ago β”‚ ~/.openclaw/agents/archimedes/sessions/sessions. β”‚

#

β”‚ β”‚ β”‚ β”‚ β”‚ json β”‚
β”‚ hemmingway (Hemmingway) β”‚ ABSENT β”‚ 2 β”‚ 13h ago β”‚ ~/.openclaw/agents/hemmingway/sessions/sessions. β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ json β”‚
β”‚ iris (Iris) β”‚ ABSENT β”‚ 3 β”‚ 15h ago β”‚ ~/.openclaw/agents/iris/sessions/sessions.json β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Diagnosis (read-only)

Gateway connection details:
Gateway target: wss://127.0.0.1:18888
Source: local loopback
Config: /home/broedkrummen/.openclaw/openclaw.json
Bind: loopback

βœ“ Config: /home/broedkrummen/.openclaw/openclaw.json
βœ“ Secret diagnostics (0)
βœ“ Restart sentinel: none
! Port 18888
Port 18888 is already in use.

  • pid 192720 broedkrummen: openclaw-gateway (127.0.0.1:18888)
  • Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.
    ! Tailscale exposure: serve Β· daemon unknown Β· ubuntu-8gb-fsn1-1.taila0448b.ts.net
    https: https://ubuntu-8gb-fsn1-1.taila0448b.ts.net
    βœ“ Skills: 12 eligible Β· 0 missing Β· /home/broedkrummen/.openclaw/Workspace
    βœ“ Plugin compatibility (none)

Gateway restart attempts (tail): /home/broedkrummen/.openclaw/logs/gateway-restart.log
[2026-04-27T14:24:06Z] openclaw restart attempt source=update target=openclaw-gateway.service
[2026-04-27T14:24:06Z] openclaw restart done source=update
[2026-04-28T03:27:02Z] openclaw restart attempt source=update target=openclaw-gateway.service
[2026-04-28T03:27:02Z] openclaw restart done source=update
! Channel issues skipped (gateway unreachable)

Gateway health:
timeout

Pasteable debug report. Auth tokens redacted.
Troubleshooting: https://docs.openclaw.ai/troubleshooting

β—‡

🦞 OpenClaw 2026.4.26 (be8c246) β€” Your .zshrc wishes it could do what I do.

β”‚
β—‡
Service: systemd (enabled)
File logs: /tmp/openclaw/openclaw-2026-04-28.log
Command: /usr/bin/node /home/broedkrummen/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18888
Service file: ~/.config/systemd/user/openclaw-gateway.service
Service env: OPENCLAW_GATEWAY_PORT=18888

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

Gateway: bind=loopback (127.0.0.1), port=18888 (service args)
Probe target: wss://127.0.0.1:18888
Dashboard: https://127.0.0.1:18888/
Probe note: Loopback-only gateway; only local clients can connect.

Runtime: running (pid 192720, state active, sub running, last exit 0, reason 0)
Warm-up: launch agents can take a few seconds. Try again shortly.
Connectivity probe: failed
Probe target: wss://127.0.0.1:18888
timeout
Capability: unknown

Port 18888 is already in use.

  • pid 192720 broedkrummen: openclaw-gateway (127.0.0.1:18888)
  • Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.
    Listening: 127.0.0.1:18888
    Troubles: run openclaw status
    Troubleshooting: https://docs.openclaw.ai/troubleshooting
opal sphinxBOT
#

That completion-cache error is probably not the root cause. It means the post-update shell completion refresh timed out after 30s; worst case your tab completion is stale.

The real bad signal is:

Gateway Β· unreachable (timeout)
Gateway service Β· systemd installed Β· enabled Β· running

So the service process exists, but the gateway isn’t responding β€” likely stuck, overloaded, or crashing/restarting internally.

Please paste these next:

openclaw logs --limit 300 --plain --no-color
journalctl --user -u openclaw-gateway.service -n 250 --no-pager
#

Port 18888 being β€œin use” is expected here β€” it’s owned by the gateway PID. The problem is: the gateway is listening but not answering probes, so it’s probably wedged.

Can you grab logs directly from the file path shown before restarting?

tail -n 250 /tmp/openclaw/openclaw-2026-04-28.log
journalctl --user -u openclaw-gateway.service -n 250 --no-pager
ps -p 192720 -o pid,ppid,etimes,stat,%cpu,%mem,rss,cmd

Then try the clean recovery:

openclaw gateway restart
sleep 5
openclaw gateway status --deep
sterile reef
#

I see the errors:
2026-04-28T03:56:01.650Z error Invalid config at /home/broedkrummen/.openclaw/openclaw.json:\n- gateway.bind: gateway.bind must resolve to loopback when gateway.tailscale.mode=serve (use gateway.bind="loopback" or gateway.bind="custom" with gateway.customBindHost="127.0.0.1")
2026-04-28T03:56:01.841Z error Config invalid
2026-04-28T03:56:01.845Z error File: ~/.openclaw/openclaw.json
2026-04-28T03:56:01.848Z error Problem:
2026-04-28T03:56:01.851Z error - gateway.bind: gateway.bind must resolve to loopback when gateway.tailscale.mode=serve (use gateway.bind="loopback" or gateway.bind="custom" with gateway.customBindHost="127.0.0.1")
2026-04-28T03:56:01.854Z error Legacy config keys detected:
2026-04-28T03:56:01.857Z error - gateway.bind: gateway.bind host aliases (for example 0.0.0.0/localhost) are legacy; use bind modes (lan/loopback/custom/tailnet/auto) instead. Run "openclaw doctor --fix".
2026-04-28T03:56:01.860Z error {"0":"","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-28T03:56:01.860Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///home/broedkrummen/.npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149:68","fileName":"console-D6VW2Y3e.js","fileNameWithLine":"console-D6VW2Y3e.js:149","fileColumn":"68","fileLine":"149","filePath":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149","method":"console.error"}},"time":"2026-04-28T03:56:01.860+00:00","hostname":"ubuntu-8gb-fsn1-1"}
2026-04-28T03:56:01.864Z error Run: openclaw doctor --fix
2026-04-28T03:56:02.033Z error Gateway aborted: config is invalid.
gateway.bind: gateway.bind must resolve to loopback when gateway.tailscale.mode=serve (use gateway.bind="loopback" or gateway.bind="custom" with gateway.customBindHost="127.0.0.1")
Fix the config and retry, or run "openclaw doctor" to repair.
2026-04-28T03:56:06.858Z error Config invalid
2026-04-28T03:56:06.889Z error File: ~/.openclaw/openclaw.json
2026-04-28T03:56:06.892Z error Problem:
2026-04-28T03:56:06.894Z error - gateway.bind: gateway.bind must resolve to loopback when gateway.tailscale.mode=serve (use gateway.bind="loopback" or gateway.bind="custom" with gateway.customBindHost="127.0.0.1")
2026-04-28T03:56:06.897Z error Legacy config keys detected:
2026-04-28T03:56:06.899Z error - gateway.bind: gateway.bind host aliases (for example 0.0.0.0/localhost) are legacy; use bind modes (lan/loopback/custom/tailnet/auto) instead. Run "openclaw doctor --fix".
2026-04-28T03:56:06.901Z error {"0":"","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-28T03:56:06.900Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///home/broedkrummen/.npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149:68","fileName":"console-D6VW2Y3e.js","fileNameWithLine":"console-D6VW2Y3e.js:149","fileColumn":"68","fileLine":"149","filePath":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149","method":"console.error"}},"time":"2026-04-28T03:56:06.901+00:00","hostname":"ubuntu-8gb-fsn1-1"}
2026-04-28T03:56:06.903Z error Run: openclaw doctor --fix
2026-04-28T03:56:18.187Z error Config invalid
2026-04-28T03:56:18.216Z error File: ~/.openclaw/openclaw.json
2026-04-28T03:56:18.218Z error Problem:
2026-04-28T03:56:18.220Z error - gateway.bind: gateway.bind must resolve to loopback when gateway.tailscale.mode=serve (use gateway.bind="loopback" or gateway.bind="custom" with gateway.customBindHost="127.0.0.1")
2026-04-28T03:56:18.222Z error Legacy config keys detected:

#

2026-04-28T03:56:18.224Z error - gateway.bind: gateway.bind host aliases (for example 0.0.0.0/localhost) are legacy; use bind modes (lan/loopback/custom/tailnet/auto) instead. Run "openclaw doctor --fix".
2026-04-28T03:56:18.226Z error {"0":"","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-28T03:56:18.226Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///home/broedkrummen/.npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149:68","fileName":"console-D6VW2Y3e.js","fileNameWithLine":"console-D6VW2Y3e.js:149","fileColumn":"68","fileLine":"149","filePath":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149","method":"console.error"}},"time":"2026-04-28T03:56:18.226+00:00","hostname":"ubuntu-8gb-fsn1-1"}
2026-04-28T03:56:18.228Z error Run: openclaw doctor --fix
2026-04-28T03:56:29.513Z error Config invalid
2026-04-28T03:56:29.549Z error File: ~/.openclaw/openclaw.json
2026-04-28T03:56:29.552Z error Problem:
2026-04-28T03:56:29.555Z error - gateway.bind: gateway.bind must resolve to loopback when gateway.tailscale.mode=serve (use gateway.bind="loopback" or gateway.bind="custom" with gateway.customBindHost="127.0.0.1")
2026-04-28T03:56:29.557Z error Legacy config keys detected:
2026-04-28T03:56:29.560Z error - gateway.bind: gateway.bind host aliases (for example 0.0.0.0/localhost) are legacy; use bind modes (lan/loopback/custom/tailnet/auto) instead. Run "openclaw doctor --fix".
2026-04-28T03:56:29.563Z error {"0":"","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-28T03:56:29.562Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///home/broedkrummen/.npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149:68","fileName":"console-D6VW2Y3e.js","fileNameWithLine":"console-D6VW2Y3e.js:149","fileColumn":"68","fileLine":"149","filePath":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149","method":"console.error"}},"time":"2026-04-28T03:56:29.563+00:00","hostname":"ubuntu-8gb-fsn1-1"}
2026-04-28T03:56:29.565Z error Run: openclaw doctor --fix
2026-04-28T03:56:40.782Z error Config invalid
2026-04-28T03:56:40.814Z error File: ~/.openclaw/openclaw.json
2026-04-28T03:56:40.817Z error Problem:
2026-04-28T03:56:40.819Z error - gateway.bind: gateway.bind must resolve to loopback when gateway.tailscale.mode=serve (use gateway.bind="loopback" or gateway.bind="custom" with gateway.customBindHost="127.0.0.1")
2026-04-28T03:56:40.822Z error Legacy config keys detected:
2026-04-28T03:56:40.824Z error - gateway.bind: gateway.bind host aliases (for example 0.0.0.0/localhost) are legacy; use bind modes (lan/loopback/custom/tailnet/auto) instead. Run "openclaw doctor --fix".
2026-04-28T03:56:40.826Z error {"0":"","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-28T03:56:40.825Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///home/broedkrummen/.npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149:68","fileName":"console-D6VW2Y3e.js","fileNameWithLine":"console-D6VW2Y3e.js:149","fileColumn":"68","fileLine":"149","filePath":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/console-D6VW2Y3e.js:149","method":"console.error"}},"time":"2026-04-28T03:56:40.826+00:00","hostname":"ubuntu-8gb-fsn1-1"}

opal sphinxBOT
#

Good find β€” that’s the actual blocker.

With gateway.tailscale.mode = serve, OpenClaw now requires the Gateway itself to stay on loopback. Tailscale Serve is the thing that exposes it externally, so gateway.bind: "0.0.0.0" / "localhost" / other old host aliases will fail validation.

Do this:

cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.$(date +%Y%m%d-%H%M%S)

openclaw doctor --fix
openclaw config validate
openclaw gateway restart
sleep 5
openclaw gateway status --deep

If doctor --fix doesn’t clear it, force the intended shape:

#
openclaw config set gateway.bind loopback
openclaw config validate
openclaw gateway restart

Then use your Tailscale Serve URL for remote access, not a direct non-loopback bind.

If it still complains, paste:

openclaw config get gateway.bind
openclaw config get gateway.customBindHost
openclaw config get gateway.tailscale.mode

(no auth tokens needed)

#

Yep, that’s the same error repeating β€” no need to paste more logs from that section.

Run the fix commands now:

openclaw config set gateway.bind loopback
openclaw config validate
openclaw gateway restart
sleep 5
openclaw gateway status --deep

If config validate still complains, run:

openclaw doctor --fix
#
openclaw config validate
openclaw gateway restart

The important bit: with gateway.tailscale.mode: serve, don’t bind OpenClaw to 0.0.0.0 / localhost directly. Keep OpenClaw on loopback; Tailscale Serve exposes it.

Docs: https://docs.openclaw.ai/web

sterile reef
#

β”” Doctor complete.

🦞 OpenClaw 2026.4.26 (be8c246) β€” I'm not AI-powered, I'm AI-possessed. Big difference.

Config valid: ~/.openclaw/openclaw.json

🦞 OpenClaw 2026.4.26 (be8c246) β€” I'm like tmux: confusing at first, then suddenly you can't live without me.

Restarted systemd service: openclaw-gateway.service

🦞 OpenClaw 2026.4.26 (be8c246) β€” Your .zshrc wishes it could do what I do.

β”‚
β—‡
Service: systemd (enabled)
File logs: /tmp/openclaw/openclaw-2026-04-28.log
Command: /usr/bin/node /home/broedkrummen/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18888
Service file: ~/.config/systemd/user/openclaw-gateway.service
Service env: OPENCLAW_GATEWAY_PORT=18888

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

Gateway: bind=loopback (127.0.0.1), port=18888 (service args)
Probe target: wss://127.0.0.1:18888
Dashboard: https://127.0.0.1:18888/
Probe note: Loopback-only gateway; only local clients can connect.

Runtime: running (pid 195541, state active, sub running, last exit 0, reason 0)
Warm-up: launch agents can take a few seconds. Try again shortly.
Connectivity probe: failed
Probe target: wss://127.0.0.1:18888
timeout
Capability: unknown

Port 18888 is already in use.

  • pid 195541 broedkrummen: openclaw-gateway (127.0.0.1:18888)
  • Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.
    Listening: 127.0.0.1:18888
    Troubles: run openclaw status
    Troubleshooting: https://docs.openclaw.ai/troubleshooting
opal sphinxBOT
#

Nice, config is fixed now β€” this is a different failure: gateway starts + listens, but the probe can’t get a response.

Let’s split β€œHTTP alive” vs β€œWS/RPC wedged”:

curl -k --max-time 5 -i https://127.0.0.1:18888/healthz
curl -k --max-time 5 -i https://127.0.0.1:18888/readyz

tail -n 250 /tmp/openclaw/openclaw-2026-04-28.log
journalctl --user -u openclaw-gateway.service -n 160 --no-pager
ps -p 195541 -o pid,ppid,etimes,stat,%cpu,%mem,rss,cmd
free -h

If /healthz also times out, the Node process is probably wedged/event-loop blocked. If /healthz works but gateway status times out, it’s more likely startup sidecars / WS RPC / auth path.

If you need a more diagnostic restart after that:

sterile reef
#

It seems to have stalled:
04:20:59 [gateway] startup trace: post-attach.update-check 20.8ms total=15066.7ms eventLoopMax=0.0ms
04:20:59 [gateway] starting channels and sidecars...
04:20:59 [gateway] startup trace: sidecars.session-locks 112.1ms total=15187.2ms eventLoopMax=26.6ms
04:20:59 [gateway] startup trace: sidecars.gmail-watch 0.2ms total=15192.1ms eventLoopMax=0.0ms
04:20:59 [gateway] startup trace: sidecars.gmail-model 0.4ms total=15195.9ms eventLoopMax=0.0ms
04:20:59 [gateway] startup trace: sidecars.internal-hooks 0.2ms total=15199.8ms eventLoopMax=0.0ms
04:21:26 [tailscale] serve enabled
04:21:26 [gateway] startup trace: post-attach.tailscale 27743.4ms total=42790.4ms eventLoopMax=26323.5ms

opal sphinxBOT
#

That trace is useful. eventLoopMax=26323ms means the Node event loop was blocked for ~26s during startup β€” not just β€œwaiting on network”.

Because the last sidecar before the stall is sidecars.internal-hooks, the next likely culprit is channel/model provider startup. Let’s confirm by starting once with channels/providers skipped:

openclaw gateway stop
OPENCLAW_GATEWAY_STARTUP_TRACE=1 OPENCLAW_SKIP_CHANNELS=1 openclaw gateway --port 18888

If that reaches gateway ready, then the core gateway is fine and one of the channel/model startup paths is wedging.

Also check Tailscale itself since it took ~27s:

tailscale status
tailscale serve status
#

Quick isolation option too:

openclaw config set gateway.tailscale.mode off
openclaw gateway restart
openclaw gateway status --deep

If disabling Tailscale makes it responsive, we’ve narrowed it to the Serve setup. If OPENCLAW_SKIP_CHANNELS=1 makes it responsive, paste the trace/log lines around sidecars.model-prewarm / sidecars.channel-start.

sterile reef
#

Nevermind, It just needed some time:
04:21:26 [gateway] startup trace: post-attach.tailscale 27743.4ms total=42790.4ms eventLoopMax=26323.5ms
04:22:26 [discord] [default] delaying provider startup 10s to reduce Discord startup rate limits
04:22:26 [discord] [hemmingway] delaying provider startup 20s to reduce Discord startup rate limits
04:22:26 [discord] [iris] delaying provider startup 30s to reduce Discord startup rate limits
04:22:26 [gateway] startup trace: sidecars.channels 87675.9ms total=102879.1ms eventLoopMax=1521.5ms
04:22:26 [plugins] embedded acpx runtime backend registered (cwd: /home/broedkrummen/.openclaw/Workspace)
04:22:27 [browser/server] Browser control listening on http://127.0.0.1:18890/ (auth=token)
04:22:27 [gateway] startup trace: sidecars.plugin-services 673.5ms total=103560.1ms eventLoopMax=628.6ms
04:22:27 [gateway] startup trace: sidecars.memory 0.3ms total=103564.4ms eventLoopMax=0.0ms
04:22:27 [gateway] startup trace: sidecars.restart-sentinel 2.6ms total=103569.9ms eventLoopMax=0.0ms
04:22:27 [gateway] startup trace: sidecars.subagent-recovery 5.6ms total=103578.4ms eventLoopMax=0.0ms
04:22:27 [gateway] startup trace: sidecars.main-session-recovery 9.0ms total=103596.2ms eventLoopMax=0.0ms
04:22:27 [gateway] startup trace: sidecars.total 88524.5ms total=103598.7ms eventLoopMax=0.0ms
04:22:27 [gateway] startup trace: sidecars.ready 2.6ms total=103601.3ms eventLoopMax=0.0ms
04:22:27 [gateway] ready
04:22:27 [gateway] startup trace: runtime.post-attach 88659.9ms total=103607.5ms eventLoopMax=0.0ms
04:22:27 [gateway] startup trace: ready 2.5ms total=103610.0ms eventLoopMax=0.0ms
04:22:27 [heartbeat] started
04:22:27 [telegram] [default] starting provider (@Nova_my_bot_bot)
04:22:28 [telegram] menu text exceeded the conservative 5700-character payload budget; shortening descriptions to keep 56 commands visible.
04:22:28 [discord] [archimedes] Discord Message Content Intent is limited; bots under 100 servers can use it without verification.
04:22:28 [discord] [archimedes] starting provider (@Archimedes)
04:22:29 [discord] channels resolved: 1465974811128758304/1472600748800872550 (guild:Broedkrummes server; channel:archimedes)
discord channels unresolved: 1465974811128758304/1498259427055108136 (guildId:1465974811128758304; channelId:1498259427055108136)
04:22:29 [discord] channel users resolved: 1455735626665164871
04:22:32 [discord] logged in to discord as 1498252277461286994 (Archimedes)
04:22:37 [discord] [default] Discord Message Content Intent is limited; bots under 100 servers can use it without verification.
04:22:37 [discord] [default] starting provider (@Nova)
04:22:37 [discord] channels resolved: 1465974811128758304 (guild:Broedkrummes server; aliases:guild:1465974811128758304)
04:22:39 [discord] logged in to discord as 1472960908257923113 (Nova)
04:22:47 [discord] [hemmingway] Discord Message Content Intent is limited; bots under 100 servers can use it without verification.
04:22:47 [discord] [hemmingway] starting provider (@Hemmingway)
04:22:47 [discord] channels resolved: 1465974811128758304/1472821043616809013 (guild:Broedkrummes server; channel:hemmingway)
discord channels unresolved: 1465974811128758304/1496214293958361342 (guildId:1465974811128758304; channelId:1496214293958361342)
04:22:48 [discord] channel users resolved: 1455735626665164871
04:22:49 [discord] logged in to discord as 1496211036766863481 (Hemmingway)
04:22:57 [discord] [iris] Discord Message Content Intent is limited; bots under 100 servers can use it without verification.
04:22:57 [discord] [iris] starting provider (@Iris)
04:22:57 [discord] channels resolved: 1465974811128758304/1475708783647789108 (guild:Broedkrummes server; channel:iris)
discord channels unresolved: 1465974811128758304/1498258459307544596 (guildId:1465974811128758304; channelId:1498258459307544596)
04:22:57 [discord] channel users resolved: 1455735626665164871
04:22:59 [discord] logged in to discord as 1498253644817236018 (Iris)

opal sphinxBOT
#

Nice β€” yep, that explains it.

Startup took ~103s total:

  • ~28s in Tailscale Serve setup
  • ~88s in sidecars/channels
  • Discord accounts are intentionally staggered: 10s / 20s / 30s delays to avoid startup rate limits

So during that window, gateway status --deep can look scary because the process is listening but not fully ready yet.

Two small cleanup notes:

  1. Those discord channels unresolved lines mean you likely have stale/deleted channel IDs in config. Not fatal, but worth cleaning later.
  2. If startup time keeps being painful, temporarily disable unused Discord accounts/channels or Tailscale Serve to compare.

Final check:

#
openclaw gateway status --deep
openclaw channels status --probe

If those are good, you’re back. πŸŽ‰

If this fixed it, please right-click the solution message β†’ Apps β†’ βœ… Mark Solution so Answer Overflow indexes it for future users.

sterile reef
#

04:25:34 [discord] gateway: Gateway websocket closed: 1000
04:25:34 [discord] gateway: Gateway reconnect scheduled in 866ms (close, resume=true)
04:25:34 [discord] gateway: Gateway websocket closed: 1000
04:25:34 [discord] gateway: Gateway reconnect scheduled in 1123ms (close, resume=true)
04:25:50 [discord] gateway: Gateway websocket closed: 1000
04:25:50 [discord] gateway: Gateway reconnect scheduled in 1037ms (close, resume=true)

opal sphinxBOT
#

Those are Discord gateway logs, not the OpenClaw gateway dying.

1000 is a normal websocket close code, and resume=true means the Discord client is trying to resume the session. Occasional lines like this after startup/restart are okay, especially with multiple Discord accounts.

If it keeps happening every ~15s forever, then it’s worth chasing. Check:

openclaw gateway status --deep
openclaw channels status --probe
tail -n 200 /tmp/openclaw/openclaw-2026-04-28.log

Look for whether each Discord account logs back in after the reconnect. If they stay logged in and messages work, this is just noisy reconnect logging. If messages still lag/drop, paste the channels status --probe output.

sterile reef
#

04:26:34 [discord] [iris] delaying provider startup 30s to reduce Discord startup rate limits
04:26:34 [diagnostic] stuck session: sessionId=unknown sessionKey=agent:nova:main state=processing age=61s queueDepth=1
04:26:34 [discord] discord gateway error: Error: socket hang up
04:26:34 [discord] gateway: Gateway websocket closed: 1006
04:26:34 [discord] gateway: Gateway reconnect scheduled in 2227ms (close, resume=true)
04:26:34 [discord] gateway: Gateway websocket closed: 1000
04:26:34 [discord] gateway: Gateway reconnect scheduled in 1073ms (close, resume=true)
04:26:40 [discord] [archimedes] starting provider (@Archimedes)
04:27:13 [diagnostic] stuck session: sessionId=unknown sessionKey=agent:nova:main state=processing age=100s queueDepth=1
04:27:13 [discord] discord gateway opened but did not reach READY within 30000ms
04:27:13 [discord] [hemmingway] channel exited: discord gateway opened but did not reach READY within 30000ms
04:27:13 [discord] [hemmingway] auto-restart attempt 1/10 in 5s
04:27:13 [discord] discord gateway opened but did not reach READY within 30000ms
04:27:13 [discord] [default] channel exited: discord gateway opened but did not reach READY within 30000ms
04:27:13 [discord] [default] auto-restart attempt 1/10 in 5s

opal sphinxBOT
#

Now we’ve got two separate things:

  1. Discord provider instability

    • 1006 / socket hang up / did not reach READY within 30000ms means the Discord websocket opened but didn’t finish READY in time.
    • Since you have multiple Discord accounts starting and you’ve restarted a few times, I’d avoid more restarts for a minute or two and let the auto-restart attempts settle.
  2. Nova session is stuck

    • This line matters for β€œno way to have a conversation”:
    stuck session ... sessionKey=agent:nova:main state=processing age=100s queueDepth=1
    

    That means Nova’s main session is still processing something and one message is queued behind it.

Try sending this to Nova’s DM/main chat:

#
/stop

Then check:

openclaw gateway status --deep
openclaw channels status --probe

If Discord READY timeouts keep repeating after ~2–3 minutes, temporarily reduce pressure by disabling any Discord accounts you don’t need right now, e.g.:

openclaw config set channels.discord.accounts.hemmingway.enabled false --strict-json
openclaw config set channels.discord.accounts.iris.enabled false --strict-json