AgentFixboard

openclaw update leaves the Gateway unit unchanged after candidate-config-read-failed

openclaw update prints [update:warning:candidate-config-read-failed] Candidate config read failed: reader process exited with code 1 without a result. The existing service definition is left unchanged.

From GitHub

openclaw/openclaw

Difficulty
Easy
Time
~5 min
Steps
2
Fixed in
—
Last checked

Unverified: we could not confirm from the sources that a fix shipped. Source: PR #170373 merged. Last checked 2026-10-19.

Symptom

openclaw update prints [update:warning:candidate-config-read-failed] Candidate config read failed: reader process exited with code 1 without a result. The existing service definition is left unchanged.

Evidence what you'll see

  • While stopping the Gateway the updater printed Candidate config read failed; the existing service definition was left unchanged. Retry with the updated CLI.
  • After the package on disk was 2026.10.5-beta.2 (467e83d), the same step printed twice with reader process exited with code 1 without a result.
  • The log then said Gateway service definition left unchanged; ask its deployment owner to repair stale metadata if needed. The service was restarted and the updater recorded Gateway: restarted and verified.

Why it happens

The candidate config reader child wrote its result frame with fs.writeFileSync(1, …) after making stdout non-blocking. When the config snapshot was larger than the pipe buffer, that write threw EAGAIN, the parent could not parse a result, and the unit refresh was skipped. Pull request 170373 writes the frame through the stream so it can flush.

Affected versions

npm-global OpenClaw 2026.10.5-beta.1 (f283c3c) on Debian 13, user systemd service openclaw-gateway.service. The update used --channel beta --tag 2026.10.5-beta.2 --yes.

Fix steps

0 of 2 done

Your check marks stay in this browser only.

How to check it worked

  • openclaw update refreshes the Gateway service definition instead of printing reader process exited with code 1 without a result.

If it still fails

  • No published release tag contains pull request 170373. Tags v2026.10.3, v2026.10.4, and v2026.10.5 were compared against merge 043614d9c34f and do not contain it.
  • The pull request names the pipe buffer as about 64 KB on macOS and about 200 KB on Linux.

Sources and credit

Summarized in our own words from these public reports. Credit goes to their authors.

Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change

Hit an error we don't cover? Submit it