Update blocked on 2026.9.8: missing managed-update-handoffs.sqlite; recovery helper also fails

What are you trying to do?

Update OpenClaw from 2026.9.8 to 2026.10.8, which openclaw update status --json reports as the latest stable release, while preserving configuration, session history, and databases.

Environment

  • OpenClaw version: 2026.9.8 (fc23bc8)
  • Operating system: Linux x64, kernel 6.8.0-147-generic
  • Installation method: npm package installation
  • Gateway location: Same machine, a Linux VPS, managed by a systemd user service
  • Node.js runtime: 26.5.0
  • Relevant integrations: Codex plugin, Discord, Telegram

What happened?

Running:

openclaw update --channel stable --dry-run

fails with:

OpenClaw update failed: update-recovery-pending.
ENOENT: no such file or directory, lstat ‘/tmp/openclaw/managed-update-handoffs.sqlite’
Update recovery remains pending (update-recovery-pending). Retained state and artifacts were left for the owning updater to reconcile; automatic restart and repair were not attempted.

Creating a fresh backup also fails:

openclaw backup create

Private update capture marker is unreadable; export refused.

What have you tried?

  1. Checked openclaw update status --json, which confirms that 2026.10.8 is available.

  2. Ran openclaw update repair. Initially, maintenance was refused because the running Gateway held state database ownership.

  3. From an independent SSH terminal, stopped the systemd Gateway service and ran openclaw update repair again.

  4. Repair completed with warnings. Deferred plugin migrations reported completion, and the displayed agent database integrity checks reported healthy.

  5. Ran openclaw doctor --fix separately. It completed and reported:

    Gateway restarted and verified after Doctor repair.

  6. Retried the update dry run. It still fails with the same missing handoff database error.

  7. Read-only inspection found a retained package activation journal with phase publication-complete. Its original retained recovery helper was run with the status command and also refused:

    Package publication recovery refused: ENOENT: no such file or directory, lstat ‘/tmp/openclaw/managed-update-handoffs.sqlite’

  8. I reviewed topics 15, 14, and 26. My CLI and Gateway both report 2026.9.8; the failure is a missing managed-update-handoffs.sqlite required by retained package activation recovery, rather than a reported schema-version mismatch.

I have not recreated the missing database, deleted recovery artifacts, or installed over the package using npm.

Safe diagnostics

Before offline maintenance, openclaw gateway status --deep reported:

Service: systemd user (enabled)
CLI version: 2026.9.8
Gateway version: 2026.9.8
Runtime: running
Connectivity probe: ok
Capability: connected-no-operator-scope

The retained activation journal is under:

~/.local/lib/node_modules/.openclaw.package-activation-.control/operation.sqlite

What is the supported recovery procedure when the retained package activation requires a temporary handoff database that no longer exists? Could the backup privacy-marker refusal be related?