AgentFixboard

openclaw update stays blocked with update-recovery-pending after a lost handoff lease

openclaw update is refused with "reason":"update-recovery-pending" and managed handoff lease database identity changed. Repair does not clear it.

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 #169038 merged. Last checked 2026-10-19.

Symptom

openclaw update is refused with "reason":"update-recovery-pending" and managed handoff lease database identity changed. Repair does not clear it.

Evidence what you'll see

  • The JSON result includes "status":"error", "reason":"update-recovery-pending", and a failure fact whose message is managed handoff lease database identity changed.
  • openclaw update repair completed, including finalize:doctor completed, then the next update was refused at the same check.
  • openclaw update triage --run printed No resolution predicate for update failure managed-service-handoff-failed and told the operator to run openclaw update status --json, then retry openclaw update.

Why it happens

Admission treats a missing or replaced managed-handoff lease database as recovery still pending. The executing updater is the older binary, so it cannot load a candidate it has not downloaded. Pull request 169038 settles eligible stale package recovery on the existing owner and archives completed receipts before the next real preparation.

Affected versions

XPS15-9520, WSL2; OpenClaw 2026.10.1-beta.1 (6830fe7), install kind: package, npm; unit openclaw-gateway.service, KillMode=mixed, /health 200 throughout.

Fix steps

0 of 2 done

Your check marks stay in this browser only.

How to check it worked

  • A later openclaw update --yes --json no longer returns "reason":"update-recovery-pending" with managed handoff lease database identity changed.

If it still fails

  • No published release tag contains pull request 169038. Tags v2026.10.3, v2026.10.4, and v2026.10.5 were compared against merge ff6f58a8c32b and do not contain it.
  • The pull request says --dry-run must not change the journal, lease database, package, or retained artifacts.

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