Skip to content

[Bug]: Upgrade leaves repeated shared SQLite plugin install metadata conflict warnings for codex/discord #90418

@ramitrkar-hash

Description

@ramitrkar-hash

Summary

After upgrading a local macOS install from 2026.5.18 to 2026.6.1, OpenClaw repeatedly reports a legacy state migration/plugin install index warning for codex and discord, even though the plugin update appears to complete and the gateway runs normally.

Environment

  • OpenClaw before: 2026.5.18 (50a2481)
  • OpenClaw after: 2026.6.1 (2e08f0f)
  • Platform: macOS arm64
  • Install/update mode: pnpm, stable channel
  • Gateway: LaunchAgent, loopback 127.0.0.1:18789
  • Plugins involved: @openclaw/codex, @openclaw/discord

Repro / observed flow

Ran supervised upgrade:

openclaw update --tag 2026.6.1 --yes --timeout 3600 --no-restart

Update completed:

Update Result: OK
  Root: /opt/homebrew/lib/node_modules/openclaw
  Before: 2026.5.18
  After: 2026.6.1

Steps:
  ✓ global update
  ✓ global install swap
  ✓ openclaw doctor

Then plugin update ran:

Updating plugins...
Installing @openclaw/codex into ~/.openclaw/npm/projects/openclaw-codex-8902d781d4…
Linked peerDependency "openclaw" -> /opt/homebrew/lib/node_modules/openclaw
Installing @openclaw/discord into ~/.openclaw/npm/projects/openclaw-discord-c0892df945…
Linked peerDependency "openclaw" -> /opt/homebrew/lib/node_modules/openclaw
npm plugins: 2 updated, 0 unchanged.

But the following warning appeared during the update, during openclaw gateway restart --wait 120s, and again during openclaw channels status --json:

[state-migrations] Legacy state migration warnings:
- Left plugin install index in place because shared SQLite state has conflicting plugin install metadata for: codex, discord

Doctor warnings:
- Left plugin install index in place because shared SQLite state has conflicting plugin install metadata for: codex, discord

Expected behavior

After a successful plugin update, the install index/shared SQLite metadata should either:

  1. reconcile the new plugin install records automatically, or
  2. emit a one-time actionable repair command that clears the stale/conflicting records safely.

The warning should not keep recurring on normal health/status/restart flows if the runtime is healthy.

Actual behavior

The warning repeats across multiple commands even though runtime validation succeeds.

Post-upgrade validation:

openclaw --version -> OpenClaw 2026.6.1 (2e08f0f)
openclaw gateway status -> CLI version 2026.6.1, Gateway version 2026.6.1, connectivity probe ok
openclaw health --json -> ok=true, plugins loaded include codex and discord, plugin errors=[]
openclaw channels status --json -> Discord and Telegram running; all enabled Discord accounts eventually connected

Impact

This looks non-fatal, but it is noisy and confusing during upgrades. It makes operators unsure whether codex/discord plugin installs are clean or whether a stale install index may affect future plugin repair/update behavior.

Suggested fix

  • Add a deterministic migration/repair path for conflicting shared SQLite plugin install metadata.
  • If automatic repair is unsafe, include exact operator guidance in the warning, e.g. a specific openclaw doctor --fix/plugin repair command or a dry-runable cleanup command.
  • Suppress repeated warnings after the runtime has proven that the affected plugins are installed, linked, and loaded cleanly, or downgrade to a status note with remediation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions