#Openclaw gateway troubles
1 messages ยท Page 1 of 1 (latest)
โTyping foreverโ usually means the gateway received the Discord message, started a run, and then either (a) hung talking to the model, or (b) crashed/errored when trying to send the reply back to Discord. The fastest way to stop guessing is to grab the gatewayโs own view of whatโs happening.
1) Can you paste these outputs?
Run in this order:
openclaw --version
openclaw status
openclaw gateway status
openclaw channels status --probe
openclaw doctor
2) Then capture the exact failure in logs
In one terminal:
openclaw logs --follow
Then send a message that triggers the โtypingโฆโ hang, wait ~20โ30s, and paste the log chunk from when you sent it (especially any ERROR, 401/403, Forbidden, model/provider errors, or stack traces).
3) About the โrename openclaw-gateway.service โ openclaw.serviceโ advice
I would not manually rename systemd units to satisfy doctor warnings. Doctor has a proper repair/install path for supervisor configs and it also checks for service env/config drift (which can cause โit types but never repliesโ).
If doctor shows a mismatch, the supported โreset to saneโ step is:
openclaw gateway install --force
openclaw gateway restart
(Thatโs straight out of the runbook: https://docs.openclaw.ai/gateway/troubleshooting and https://docs.openclaw.ai/gateway/doctor)
Common outcomes weโll likely see in your logs
- 403/Forbidden sending message โ missing Discord perms (often โSend Messages in Threadsโ) or thread/channel access issue.
- No API key / auth missing โ systemd service not inheriting your shell env; fix is putting keys in
~/.openclaw/.envor repairing the service so it loads the right env. - Provider request hanging / timeouts โ model endpoint/network issue; logs will show which provider call is stuck.
Drop those command outputs + the log snippet and Iโll tell you exactly which branch youโre in and the smallest fix.
(deck@frosty nacelle-deck ~)$ openclaw --version
OpenClaw 2026.3.8 (3caab92)
There is no way i can paste the logs here, they are way too long.
Good โ 2026.3.8 is current enough that we can treat this as a runtime/policy/service-env issue, not โyouโre on an ancient buildโ.
Next, can you paste the output of these (in order)?
openclaw status
openclaw gateway status
openclaw gateway status --deep
openclaw channels status --probe
openclaw doctor
Then the most important part: capture the hang in real time.
- Start logs:
openclaw logs --follow
-
Send a Discord message that causes the bot to show โtypingโฆโ and never reply.
-
Paste the log lines from the moment you sent the message until it stops changing (especially anything with
ERROR,discord,Forbidden/403,401,pairing,mention required, or provider/model errors).
That log snippet will tell us whether itโs:
- failing to send to Discord (permissions/thread access),
- failing to call the model (auth/env not loaded under systemd),
- or stuck/crashing mid-run.
Also: did you actually do the โmanual renameโ of the systemd service, or did it crash before you touched anything?
You donโt need to paste all the logs โ just the small slice around the hang.
Do this:
-
Trigger the problem (send a message โ bot shows โtypingโฆโ and never replies)
-
Immediately run:
openclaw logs --limit 200 --json
โฆand paste that output here. (200 JSON lines is usually totally manageable; feel free to redact tokens/IDs.)
If thatโs still too big/noisy, filter just the scary stuff:
openclaw logs --limit 500 | grep -Ei "error|fatal|exception|discord|forbidden|unauthorized|401|403|429|timeout|pairing|mention required"
Also paste these (theyโre short but super diagnostic):
openclaw gateway status --deep
openclaw channels status --probe
One key question: did you actually rename any systemd unit files (openclaw-gateway.service โ openclaw.service), or did things break before you changed anything?
Openclaw said it would rename it for me then crashed: (deck@frosty nacelle-deck ~)$ openclaw gateway restart
๐ฆ OpenClaw 2026.3.8 (3caab92) โ Pairing codes exist because even bots believe in consentโand good security hygiene.
โ
โ Doctor warnings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ - channels.telegram.groupPolicy is "allowlist" but groupAllowFrom (and allowFrom) is โ
โ empty โ all group messages will be silently dropped. Add sender IDs to โ
โ channels.telegram.groupAllowFrom or channels.telegram.allowFrom, or set groupPolicy to โ
โ "open". โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Restarted systemd service: openclaw-gateway.service
(deck@frosty nacelle-deck ~)$ openclaw logs --limit 500 | grep -Ei "error|fatal|exception|discord|forbidden|unauthorized|401|403|429|timeout|pairing|mention required"
Gateway not reachable. Is it running and accessible?
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /home/deck/.openclaw/openclaw.json
Bind: loopback
Hint: run openclaw doctor.
That openclaw logs ... output is the smoking gun:
Your gateway isnโt reachable at all (ws://127.0.0.1:18789). So this isnโt โDiscord typing but canโt sendโ yet โ itโs earlier: the gateway process is not listening (usually because the systemd service is crashing immediately, or itโs running with a different config/port than the CLI thinks).
Letโs grab small, pasteable status + the last crash lines.
1) Paste these (should be short)
openclaw gateway status
openclaw gateway status --deep
2) Paste systemd status + last ~200 log lines
Try user service first (most Linux installs):
systemctl --user status openclaw-gateway.service --no-pager
journalctl --user -u openclaw-gateway.service -n 200 --no-pager
If it says unit not found, run the same without --user:
systemctl status openclaw-gateway.service --no-pager
journalctl -u openclaw-gateway.service -n 200 --no-pager
Those journal lines will show the actual reason itโs dying (config parse error, missing Node path, missing env, port conflict, etc.).
Side note: the Telegram groupPolicy allowlist but allowFrom empty warning is unrelated to the gateway being unreachable โ it would only affect Telegram group replies, not gateway startup.
Once you paste gateway status --deep + the journalctl tail, I can tell you the exact fix (and whether openclaw gateway install --force is the right move here).
- channels.telegram.groupPolicy is "allowlist" but groupAllowFrom (and allowFrom) is empty โ all group messages will be silently dropped. Add sender IDs to channels.telegram.groupAllowFrom or channels.telegram.allowFrom, or set groupPolicy to "open". Service: systemd (enabled) File logs: /tmp/openclaw/openclaw-2026-03-10.log
Command: /home/deck/.nvm/versions/node/v24.14.0/bin/node /home/deck/.nvm/versions/node/v24.14.0/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Service file: ~/.config/systemd/user/openclaw-gateway.service
Service env: OPENCLAW_GATEWAY_PORT=18789
Service config looks out of date or non-standard.
Service config issue: Gateway service uses Node from a version manager; it can break after upgrades. (/home/deck/.nvm/versions/node/v24.14.0/bin/node)
Recommendation: run "openclaw doctor" (or "openclaw doctor --repair").
Config (cli): ~/.openclaw/openclaw.json
Config (service): ~/.openclaw/openclaw.json
Gateway: bind=loopback (127.0.0.1), port=18789 (service args)
Probe target: ws://127.0.0.1:18789
Dashboard: http://127.0.0.1:18789/
Probe note: Loopback-only gateway; only local clients can connect.
Runtime: running (pid 208810, state active, sub running, last exit 0, reason 0)
RPC probe: ok Listening: 127.0.0.1:18789
Other gateway-like services detected (best effort):
dice-dashboard.service (user, unit: /home/deck/.config/systemd/user/dice-dashboard.service)
openclaw-daily-audit.service (user, unit: /home/deck/.config/systemd/user/openclaw-daily-audit.service)
openclaw-weekly-deep.service (user, unit: /home/deck/.config/systemd/user/openclaw-weekly-deep.service)
smart-memory.service (user, unit: /home/deck/.config/systemd/user/smart-memory.service)
Cleanup hint: systemctl --user disable --now openclaw-gateway.service
Cleanup hint: rm ~/.config/systemd/user/openclaw-gateway.service
Nice โ that output actually says the gateway is healthy right now:
Runtime: runningRPC probe: okListening: 127.0.0.1:18789
So the earlier โGateway not reachableโ was likely just a brief window right after restart / during a crash loop. The โtyping but never repliesโ problem now is almost certainly inside message handling (model auth, provider error, Discord send error, policy gating, etc.) โ and we can catch it with a small log slice.
Next 2 things to paste
- Channel health (short):
openclaw channels status --probe
- Reproduce the โtypingโฆโ hang, then immediately paste: