#Downgrade to prior version

1 messages · Page 1 of 1 (latest)

winged raven
#

What's the cleanest way to downgrade OC to a prior version in terminal? I used the following command but I'm running into a few errors: "openclaw update --tag 2026.4.24 --yes"

vagrant umbraBOT
#

For package installs, your command is the intended clean path:

openclaw update --tag 2026.4.24 --dry-run
openclaw update --tag 2026.4.24 --yes
openclaw doctor
openclaw gateway restart
openclaw --version

One gotcha: if you mean “downgrade from 2026.4.24”, target the earlier version instead, e.g.:

openclaw update --tag 2026.4.23 --yes

If openclaw update itself is what’s failing, first paste:

winged raven
#

Using the first intended cleanest path you recommended, everything checks out but I get the following error:

Completion cache update failed: Error: spawnSync /opt/homebrew/Cellar/node/25.6.1/bin/node ETIMEDOUT

--

Also, the gateway keeps failing to run.

vagrant umbraBOT
#

That completion-cache error is probably not the gateway failure. It’s the shell-completion refresh timing out while spawning Node; if the update otherwise finished, I’d ignore that for now and debug the gateway.

The suspicious bit is this path:

/opt/homebrew/Cellar/node/25.6.1/bin/node

OpenClaw recommends Node 24 as the default runtime, with Node 22.14+ supported, so I’d remove Node 25 from the equation first. (docs.openclaw.ai)

Try:

node -v
which node
which openclaw
#
openclaw --version
openclaw update status
openclaw gateway status
openclaw logs --follow

If you’re trying to get stable again, I’d target 2026.4.23, not 2026.4.24:

openclaw update --tag 2026.4.23 --yes --no-restart
openclaw gateway install --force
openclaw gateway restart
openclaw gateway status

Docs recommend doctor, gateway restart, and health/status checks after pinning/updating. (docs.openclaw.ai)

#

If it still fails, paste the first fatal-looking block from:

openclaw logs --follow

The actual gateway error will be in there; the completion cache timeout is likely just noise.

winged raven
#

I think you're misunderstanding. I'm trying to downgrade from 4.25 to 4.24

vagrant umbraBOT
#

You’re right — my bad. For 4.25 → 4.24, this is the correct target:

openclaw update --tag 2026.4.24 --yes --no-restart
openclaw --version

Then reinstall/restart the gateway from that downgraded binary:

openclaw gateway install --force
openclaw gateway restart
openclaw gateway status --deep

If it blocks because 4.24 is older than the config last touched by 4.25, use the downgrade override only for that command:

#
OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway install --force
OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway restart

The Completion cache update failed ... ETIMEDOUT is likely non-fatal shell completion cleanup. Fix gateway first; later you can retry:

openclaw completion --write-state

If gateway still fails, paste:

openclaw gateway status --deep
openclaw logs --tail 120
#

Yep, this output nails it: 4.24 is installed, but the gateway is refusing to start because openclaw.json was last written by 2026.4.25.

Do this to intentionally accept the downgrade and re-stamp the config under 4.24:

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

openclaw config set gateway.port 18789 --strict-json
openclaw config get meta.lastTouchedVersion

openclaw gateway restart
openclaw gateway status --deep

You want meta.lastTouchedVersion to show 2026.4.24.

Also, my bad on the log command — openclaw logs --tail is wrong. Use:

#
openclaw logs --limit 120

or since the gateway is down:

tail -n 120 ~/.openclaw/logs/gateway.err.log
tail -n 120 ~/.openclaw/logs/gateway.log

If restart still refuses with the newer-config guard, use the break-glass env for the command:

OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway restart
winged raven
#

This is still not working. I tried everything above. Would downgrading to 4.23 or whatever version came before 4.24 make more sense?

vagrant umbraBOT
#

Yes — 2026.4.23 is the stable release immediately before 2026.4.24, so it’s a reasonable next rollback target.

But important: if the blocker is still:

Config was last written by a newer OpenClaw (2026.4.25)

then downgrading to 4.23 won’t fix that by itself. You’ll need to re-stamp the config after installing 4.23.

Try this exact sequence:

openclaw update --tag 2026.4.23 --yes --no-restart
openclaw --version
#
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.before-4.23-downgrade.$(date +%Y%m%d-%H%M%S).bak

openclaw config set meta.lastTouchedVersion 2026.4.23
openclaw config get meta.lastTouchedVersion

OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway install --force
openclaw gateway restart
openclaw gateway status --deep

If it still won’t listen on 18789, paste:

tail -n 120 ~/.openclaw/logs/gateway.err.log
tail -n 120 ~/.openclaw/logs/gateway.log
#

Also: once the gateway is starting again, I’d still get off Node 25 and use Node 24. But the immediate issue from your status output is the newer-config guard.

winged raven
#

Something about these sets of changes has broken something in terminal. Now even trying to update to the latest verson 4.25 doesn't work. The "openclaw update" command is returning various errors. What's a different command I can run to force it to update?

vagrant umbraBOT
#

Yeah — if openclaw update is wedged, bypass the updater and reinstall the package directly via the installer.

For exact 2026.4.25:

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --version 2026.4.25 --no-onboard

Then refresh the LaunchAgent from the newly installed binary:

openclaw --version
OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway install --force
openclaw gateway restart
openclaw gateway status --deep
#

If you want whatever is currently stable/latest instead:

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --no-onboard

This is the recovery path documented for when openclaw update fails. If that installer command also errors, paste the installer output plus:

which openclaw
openclaw --version
node -v
which node
#

Got it. This is not a “port already in use” problem — pid 7949 is the OpenClaw gateway itself. The problem is: the process is listening, but the WS/RPC probe times out, so startup is likely wedged after binding the port.

First isolate whether channels/sidecars are hanging startup:

launchctl setenv OPENCLAW_SKIP_CHANNELS 1
openclaw gateway restart
sleep 10
openclaw gateway status --deep

If that makes the probe pass, the core gateway is fine and one channel/sidecar is wedging startup. Undo after testing with:

launchctl unsetenv OPENCLAW_SKIP_CHANNELS
openclaw gateway restart
#

If it still times out, run it in foreground so we can see the exact hang point:

openclaw gateway stop

OPENCLAW_GATEWAY_STARTUP_TRACE=1 \
OPENCLAW_LOG_LEVEL=debug \
openclaw gateway --port 18789 --verbose --ws-log compact

Also grab the real logs:

tail -n 200 ~/.openclaw/logs/gateway.err.log
tail -n 200 ~/.openclaw/logs/gateway.log