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

**URL:** <https://community.openclaw.ai/t/update-blocked-on-2026-9-8-missing-managed-update-handoffs-sqlite-recovery-helper-also-fails/268>\
**Category:** Troubleshooting\
**Tags:** troubleshooting\
**Created:** [October 29, 2026, 4:48pm UTC](https://community.openclaw.ai/t/update-blocked-on-2026-9-8-missing-managed-update-handoffs-sqlite-recovery-helper-also-fails/268 "2026-10-29T16:48:42Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ReidC](https://avatars.discourse-cdn.com/v4/letter/r/4491bb/32.png) [@ReidC](https://community.openclaw.ai/u/ReidC)\
**Post date:** [October 29, 2026, 4:48pm UTC](https://community.openclaw.ai/t/update-blocked-on-2026-9-8-missing-managed-update-handoffs-sqlite-recovery-helper-also-fails/268/1 "2026-10-29T16:48:42Z")

</div>

### 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:

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:

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?

---

<div class="post-metadata">

**Author:** ![TheAngryPit](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.openclaw.ai/theangrypit/32/544_2.png) [@TheAngryPit](https://community.openclaw.ai/u/TheAngryPit)\
**Post date:** [October 30, 2026, 10:04pm UTC](https://community.openclaw.ai/t/update-blocked-on-2026-9-8-missing-managed-update-handoffs-sqlite-recovery-helper-also-fails/268/2 "2026-10-30T22:04:16Z")

</div>

Hi Reid, I found a report that looks very close to yours: [#167506](https://github.com/openclaw/openclaw/issues/167506)⁠. It also involved 2026.9.8, a missing handoff database and the original recovery helper failing with ENOENT.

The fix in [#169038](https://github.com/openclaw/openclaw/pull/169038)⁠ shipped in **2026.10.3**. The catch is that your installed 2026.9.8 updater can block before it reaches that version.

The [update documentation](https://docs.openclaw.ai/install/updating#package-publication-recovery)⁠ says an already-blocked older updater may need a manual package install first. There’s also a [reported Linux recovery](https://github.com/openclaw/openclaw/issues/167506#issuecomment-6112076931)⁠ where the operator stopped the Gateway, installed a newer package through npm and ran openclaw update repair. That report started from 2026.9.9, so I can’t promise the same steps will settle your exact journal.

Since openclaw backup create is also refusing, I’d first make sure you have an independently verified backup of the state and workspaces before replacing the package. Keep the activation journal and recovery artifacts intact; recreating the missing SQLite file won’t restore its original identity.

Did the VPS reboot or was /tmp cleaned before this started? The backup error could be related, though it may also be a separate filesystem or permissions problem. A redacted openclaw update status --json could help narrow that down.
