Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Upgrade from the previous public
matrixFor most users, the upgrade is in place:
@openclaw/matrixmatrixchannels.matrix~/.openclaw/credentials/matrix/~/.openclaw/matrix/You do not need to rename config keys or reinstall the plugin under a new name.
When the gateway starts, and when you run openclaw doctor --fix
When you use
openclaw updateopenclaw doctor --fixopenclaw update --no-restartopenclaw doctor --fixAutomatic migration covers:
~/Backups/openclaw-migrations/channels.matrixSnapshot details:
~/.openclaw/matrix/migration-snapshot.jsonincludeWorkspace: falseuserIdaccessTokenAbout multi-account upgrades:
~/.openclaw/matrix/bot-storage.json~/.openclaw/matrix/crypto/The previous public Matrix plugin did not automatically create Matrix room-key backups. It persisted local crypto state and requested device verification, but it did not guarantee that your room keys were backed up to the homeserver.
That means some encrypted installs can only be migrated partially.
OpenClaw cannot automatically recover:
homeserveruserIdaccessTokenchannels.matrix.defaultAccountCurrent warning scope:
openclaw doctorIf your old installation had local-only encrypted history that was never backed up, some older encrypted messages may remain unreadable after the upgrade.
Update OpenClaw and the Matrix plugin normally. Prefer plain
openclaw update--no-restartRun:
bashopenclaw doctor --fix
If Matrix has actionable migration work, doctor will create or reuse the pre-migration snapshot first and print the archive path.
Start or restart the gateway.
Check current verification and backup state:
bashopenclaw matrix verify status openclaw matrix verify backup status
Put the recovery key for the Matrix account you are repairing in an account-specific environment variable. For a single default account,
MATRIX_RECOVERY_KEYMATRIX_RECOVERY_KEY_ASSISTANT--account assistantIf OpenClaw tells you a recovery key is needed, run the command for the matching account:
bashprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdin printf '%s\n' "$MATRIX_RECOVERY_KEY_ASSISTANT" | openclaw matrix verify backup restore --recovery-key-stdin --account assistant
If this device is still unverified, run the command for the matching account:
bashprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdin printf '%s\n' "$MATRIX_RECOVERY_KEY_ASSISTANT" | openclaw matrix verify device --recovery-key-stdin --account assistant
If the recovery key is accepted and backup is usable, but
Cross-signing verifiednobashopenclaw matrix verify self
Accept the request in another Matrix client, compare the emoji or decimals, and type
yesCross-signing verifiedyesIf you are intentionally abandoning unrecoverable old history and want a fresh backup baseline for future messages, run:
bashopenclaw matrix verify backup reset --yes
If no server-side key backup exists yet, create one for future recoveries:
bashopenclaw matrix verify bootstrap
Encrypted migration is a two-stage process:
openclaw doctor --fixopenclaw doctor --fixIf the old store reports room keys that were never backed up, OpenClaw warns instead of pretending recovery succeeded.
Matrix plugin upgraded in place.Matrix migration snapshot created before applying Matrix upgrades.Matrix migration snapshot reused before applying Matrix upgrades.Legacy Matrix state detected at ... but channels.matrix is not configured yet.channels.matrixopenclaw doctor --fixLegacy Matrix state detected at ... but the new account-scoped target could not be resolved yet (need homeserver, userId, and access token for channels.matrix...).openclaw doctor --fixLegacy Matrix state detected at ... but multiple Matrix accounts are configured and channels.matrix.defaultAccount is not set.channels.matrix.defaultAccountopenclaw doctor --fixMatrix legacy sync store not migrated because the target already exists (...)Failed migrating Matrix legacy sync store (...)Failed migrating Matrix legacy crypto store (...)openclaw doctor --fixLegacy Matrix encrypted state detected at ... but channels.matrix is not configured yet.channels.matrixopenclaw doctor --fixLegacy Matrix encrypted state detected at ... but the account-scoped target could not be resolved yet (need homeserver, userId, and access token for channels.matrix...).openclaw doctor --fixLegacy Matrix encrypted state detected at ... but multiple Matrix accounts are configured and channels.matrix.defaultAccount is not set.channels.matrix.defaultAccountopenclaw doctor --fixMatrix migration warnings are present, but no on-disk Matrix mutation is actionable yet. No pre-migration snapshot was needed.openclaw doctor --fixLegacy Matrix encrypted state was detected, but the Matrix plugin helper is unavailable. Install or repair @openclaw/matrix so OpenClaw can inspect the old rust crypto store before upgrading.openclaw plugins install @openclaw/matrixopenclaw plugins install ./path/to/local/matrix-pluginopenclaw doctor --fixMatrix plugin helper path is unsafe: ... Reinstall @openclaw/matrix and try again.openclaw doctor --fix- Failed creating a Matrix migration snapshot before repair: ...- Skipping Matrix migration changes for now. Resolve the snapshot failure, then rerun "openclaw doctor --fix".openclaw doctor --fixFailed migrating legacy Matrix client storage: ...Matrix is installed from a custom path: ...openclaw plugins install @openclaw/matrixmatrix: restored X/Y room key(s) from legacy encrypted-state backupmatrix: N legacy local-only room key(s) were never backed up and could not be restored automaticallyLegacy Matrix encrypted state for account "..." has backed-up room keys, but no local backup decryption key was found. Ask the operator to run "openclaw matrix verify backup restore --recovery-key-stdin" after upgrade if they have the recovery key.printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdinFailed inspecting legacy Matrix encrypted state for account "..." (...): ...openclaw doctor --fixprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdinLegacy Matrix backup key was found for account "...", but .../recovery-key.json already contains a different recovery key. Leaving the existing file unchanged.Legacy Matrix encrypted state for account "..." cannot be fully converted automatically because the old rust crypto store does not expose all local room keys for export.matrix: failed restoring room keys from legacy encrypted-state backup: ...openclaw matrix verify backup statusprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdinBackup key is not loaded on this device. Run 'openclaw matrix verify backup restore' to load it and restore old room keys.openclaw matrix verify backup restoreMATRIX_RECOVERY_KEYprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdinStore a recovery key with 'openclaw matrix verify device --recovery-key-stdin', then run 'openclaw matrix verify backup restore'.MATRIX_RECOVERY_KEYprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdinBackup key mismatch on this device. Re-run 'openclaw matrix verify device --recovery-key-stdin' with the matching recovery key.MATRIX_RECOVERY_KEYprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdinIf you accept losing unrecoverable old encrypted history, you can instead reset the current backup baseline with
openclaw matrix verify backup reset --yesBackup trust chain is not verified on this device. Re-run 'openclaw matrix verify device --recovery-key-stdin'.MATRIX_RECOVERY_KEYprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdinMatrix recovery key is required--recovery-key-stdinprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdinInvalid Matrix recovery key: ...Matrix recovery key was applied, but this device still lacks full Matrix identity trust.Recovery key acceptedBackup usableCross-signing verifiedDevice verified by owneropenclaw matrix verify selfyesprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify bootstrap --recovery-key-stdin --force-reset-cross-signingMatrix key backup is not active on this device after loading from secret storage.openclaw matrix verify backup statusMatrix crypto backend cannot load backup keys from secret storage. Verify this device with 'openclaw matrix verify device --recovery-key-stdin' first.printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdinMatrix is installed from a custom path that no longer exists: ...openclaw plugins install @openclaw/matrixopenclaw plugins install ./path/to/local/matrix-pluginRun these checks in order:
bashopenclaw matrix verify status --verbose openclaw matrix verify backup status --verbose printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdin --verbose
If the backup restores successfully but some old rooms are still missing history, those missing keys were probably never backed up by the previous plugin.
If you accept losing unrecoverable old encrypted history and only want a clean backup baseline going forward, run these commands in order:
bashopenclaw matrix verify backup reset --yes openclaw matrix verify backup status --verbose openclaw matrix verify status
If the device is still unverified after that, finish verification from your Matrix client by comparing the SAS emoji or decimal codes and confirming that they match.
© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine