openclaw - 💡(How to fix) Fix Crestodian startup probe timeout too short (900ms) causes false "Gateway: not reachable" on first launch

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…

Error Message

Even though the gateway IS running and reachable — the user can still chat normally. The error is purely cosmetic but confusing for new users.

Root Cause

The probe in loadCrestodianOverview()probeGatewayUrl() uses a default timeout of 900ms:

const timeout = setTimeout(() => controller.abort(), opts.timeoutMs ?? 900);

It fetches http://127.0.0.1:{port}/healthz. If the gateway's HTTP routes aren't fully registered within 900ms (e.g. right after systemd starts it, or after a reload), the probe fails.

Fix Action

Workaround

Using openclaw gateway status --quiet && openclaw or openclaw chat avoids the issue.

Code Example

const timeout = setTimeout(() => controller.abort(), opts.timeoutMs ?? 900);
RAW_BUFFERClick to expand / collapse

Describe the bug

When running openclaw (bare, in a TTY) right after SSH login, Crestodian's startup probe often fails with:

Gateway: not reachable at ws://127.0.0.1:18789; I already did the first probe.

Even though the gateway IS running and reachable — the user can still chat normally. The error is purely cosmetic but confusing for new users.

To Reproduce

  1. SSH into a server where OpenClaw gateway is a systemd user service (enabled, with linger)
  2. Run openclaw immediately after login
  3. Observe the startup banner shows: Gateway: not reachable at ws://127.0.0.1:18789; I already did the first probe.
  4. Wait a few seconds → everything works fine

Root Cause

The probe in loadCrestodianOverview()probeGatewayUrl() uses a default timeout of 900ms:

const timeout = setTimeout(() => controller.abort(), opts.timeoutMs ?? 900);

It fetches http://127.0.0.1:{port}/healthz. If the gateway's HTTP routes aren't fully registered within 900ms (e.g. right after systemd starts it, or after a reload), the probe fails.

Expected behavior

  • Increase the default probe timeout, OR
  • Add a retry (e.g. retry once after 1s on failure) so a brief startup race doesn't produce a false negative

Workaround

Using openclaw gateway status --quiet && openclaw or openclaw chat avoids the issue.

Environment

  • OpenClaw version: 2026.5.27
  • OS: Linux 5.15.0-139-generic (x64)
  • Node: 22.19.0
  • Gateway mode: local, systemd user service with linger enabled

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…

FAQ

Expected behavior

  • Increase the default probe timeout, OR
  • Add a retry (e.g. retry once after 1s on failure) so a brief startup race doesn't produce a false negative

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 Crestodian startup probe timeout too short (900ms) causes false "Gateway: not reachable" on first launch