Version: 2026.6.1-beta.1
What happens
A legacy state migration tries to consolidate the plugin install index into shared SQLite, finds conflicting install metadata for several plugins, and safely leaves the legacy index in place — re-emitting this banner on (effectively) every CLI invocation:
[state-migrations] Legacy state migration warnings:
- Left plugin install index in place because shared SQLite state has conflicting plugin install metadata for: acpx, brave, codex, diffs, lobster, lossless-claw, memory-lancedb, voice-call
Why it's a problem
- No native reconcile path.
openclaw plugins registry --refresh only rebuilds the registry from manifests — the banner persists unchanged after it. plugins doctor / doctor report the conflict but offer no reconcile action. No documented command resolves the conflicting install-index metadata. The only resolution is hand-editing shared SQLite state, which users should not have to do.
- It corrupts
--json output. The banner is written to stdout and prepended to machine-readable output, so openclaw <cmd> --json | jq (and any programmatic/agent consumer) fails to parse. This breaks automation and is the source of a downstream heartbeat_rpc "ambiguous JSON" watchdog warning.
Expected
Either:
- (a) a native command to reconcile/clear the conflicting plugin-install-index metadata (e.g.
openclaw plugins registry --reconcile-install-index or a doctor --fix action scoped to this), or
- (b) at minimum, route the
[state-migrations] warning to stderr (or a log) so it never corrupts --json stdout.
Environment
- OpenClaw 2026.6.1-beta.1
- 8 affected plugins: acpx, brave, codex, diffs, lobster, lossless-claw, memory-lancedb, voice-call
- Live registry is correct; all plugins load. Issue is the persistent warning + stdout corruption, not plugin function.
Version: 2026.6.1-beta.1
What happens
A legacy state migration tries to consolidate the plugin install index into shared SQLite, finds conflicting install metadata for several plugins, and safely leaves the legacy index in place — re-emitting this banner on (effectively) every CLI invocation:
Why it's a problem
openclaw plugins registry --refreshonly rebuilds the registry from manifests — the banner persists unchanged after it.plugins doctor/doctorreport the conflict but offer no reconcile action. No documented command resolves the conflicting install-index metadata. The only resolution is hand-editing shared SQLite state, which users should not have to do.--jsonoutput. The banner is written to stdout and prepended to machine-readable output, soopenclaw <cmd> --json | jq(and any programmatic/agent consumer) fails to parse. This breaks automation and is the source of a downstreamheartbeat_rpc"ambiguous JSON" watchdog warning.Expected
Either:
openclaw plugins registry --reconcile-install-indexor adoctor --fixaction scoped to this), or[state-migrations]warning to stderr (or a log) so it never corrupts--jsonstdout.Environment