Symptom
After a 2026.10.5 to 2026.10.6 npm update, the systemd user Gateway stays on Node 24.20.0 and exits on every start with Node 24.20.0: openclaw requires Node >=24.22.1 <25, or >=26.12.1. systemd then reports Result=start-limit-hit.
Evidence what you'll see
- The retained update report recorded
node-runtime: warn, thenOpenClaw update failed: state-migrated-no-rollbackandFailed: gateway verification — Managed Gateway service status: stopped. - The CLI ran OpenClaw
2026.10.6(fe06181) on Node26.12.1, while the unitExecStartstill named the Nix-store Node24.20.0binary. openclaw update repair --yes --jsonexited 0 and did not refresh the service pin.openclaw doctor --fix --non-interactiveprinted that the command came from an operator-owned drop-in and exited 1 withService runtime: status=stopped, state=failed, lastExit=1.- Gateway RPC returned
ECONNREFUSEDon the configured loopback port until the unit's Node directory was pointed at26.12.1.
Why it happens
Package 2026.10.6 requires >=24.22.1 <25 || >=26.12.1. The installed updater migrated state while the managed unit kept the old absolute Node path. Doctor treated a %t EnvironmentFile drop-in as owning the environment and would not rewrite the runtime non-interactively. Pull request 181618 repairs a provably owned unit through the existing backup path and keeps unrelated drop-ins.
Affected versions
OpenClaw 2026.10.5 to 2026.10.6 (fe06181), Linux x64 kernel 6.18.57, npm global install under ~/.npm-global/lib/node_modules/openclaw, systemd user unit ~/.config/systemd/user/openclaw-gateway.service with a Nix-store Node 24.20.0 ExecStart. The report's drop-in only set ExecStartPre and EnvironmentFile=-%t/openclaw-homeassistant.env.
Fix steps
0 of 2 done
Your check marks stay in this browser only.
How to check it worked
openclaw gateway status --deepreports the Gateway running2026.10.6on a supported Node, instead of repeatingNode 24.20.0: openclaw requires Node >=24.22.1 <25, or >=26.12.1andstart-limit-hit.
If it still fails
- No published release tag contains pull request 181618. Tag
v2026.10.6was compared against merge53f8d4f7f577aff93ca625c210185145a90ad81aand does not contain it (diverged). - The linked issue does not claim the original update invocation or the generated environment file at update time. A real PATH or launcher override still stays operator-owned after the pull request.
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