Skip to content

[Bug]: Doctor does not report official managed plugin version drift after core upgrade #90891

@brokemac79

Description

@brokemac79
Image

Bug type

Behavior bug (incorrect diagnostic state without crash)

Beta release blocker

No

Summary

After a stable core upgrade to 2026.6.1, an official managed codex plugin remained on 2026.5.30-beta.1; openclaw gateway status --deep correctly reported plugin version drift, but openclaw doctor --non-interactive only reported plugin counts/errors and did not surface the drift or the required openclaw plugins update codex repair.

Steps to reproduce

Observed on a live VPS after upgrading OpenClaw to the latest stable release:

  1. Upgrade core OpenClaw to 2026.6.1.
  2. Leave an official managed plugin install present from the prior version. In this case the runtime codex plugin was still 2026.5.30-beta.1.
  3. Run diagnostics that call openclaw gateway status --deep.
  4. Observe plugin version drift for the official codex plugin.
  5. Run openclaw doctor --non-interactive.
  6. Observe that doctor reports plugin loaded/error counts but does not report the official plugin version drift.
  7. Run openclaw plugins update codex && openclaw gateway restart.
  8. Observe that the drift disappears.

Expected behavior

openclaw doctor should include the same official managed plugin version drift check that openclaw gateway status --deep already performs, or clearly point users to the required deep status command.

For official runtime-critical plugins such as codex, doctor should surface an actionable warning like:

Plugin version drift: codex is 2026.5.30-beta.1, expected 2026.6.1.
Run: openclaw plugins update codex && openclaw gateway restart

Actual behavior

The drift was only visible through openclaw gateway status --deep / the custom diagnostics alert. openclaw doctor --non-interactive showed:

◇  Plugins ──────╮
│                │
│  Loaded: 13    │
│  Imported: 0   │
│  Disabled: 84  │
│  Errors: 0     │
│                │
├────────────────╯

Doctor did not mention the official codex plugin version mismatch or the manual repair command.

OpenClaw version

2026.6.1 (2e08f0f)

Operating system

Ubuntu 24.04.3 LTS

Install method

Global npm install, systemd user service (openclaw-gateway.service)

Model

openai/gpt-5.5 via OpenAI Codex runtime

Provider / routing chain

OpenClaw Gateway -> managed @openclaw/codex plugin -> Codex app-server -> OpenAI

Additional provider/model setup details

The host uses the official managed codex plugin from:

/home/ubuntu/.openclaw/npm/projects/openclaw-codex-8902d781d4/node_modules/@openclaw/codex

This was not the old split global install issue: the CLI and gateway both resolved to /usr/bin/openclaw / /usr/lib/node_modules/openclaw at 2026.6.1. The mismatch was specifically the managed official plugin copy under ~/.openclaw/npm/projects/....

Logs, screenshots, and evidence

Pre-repair diagnostic alert from Telegram screenshot (codex version bug.PNG, saved locally by reporter):

OpenClaw diagnostics alert: Gateway plugin version drift.

Evidence. openclaw gateway status --deep reports Plugin version drift: 1 active official plugin not on gateway 2026.6.1 and codex: 2026.5.30-beta.1 (npm) -> expected 2026.6.1.

Other checks passed: openclaw health --json ok, gateway running/probe ok, cron enabled, recent sampled cron runs ok, Telegram channel probe works.

Likely next step: run openclaw plugins update codex, then openclaw gateway restart.

Pre-repair gateway status --deep output captured from the affected host:

OpenClaw 2026.6.1 (2e08f0f)
Service: systemd user (enabled)
Command: /usr/bin/node /usr/lib/node_modules/openclaw/dist/index.js gateway --port 18789
CLI version: 2026.6.1 (/usr/bin/openclaw)
Gateway version: 2026.6.1
Runtime: running
Connectivity probe: ok
Capability: admin-capable

Plugin version drift: 1 active official plugin not on gateway 2026.6.1
- codex: 2026.5.30-beta.1 (npm) -> expected 2026.6.1
Fix: openclaw plugins update <plugin-id> for each drifted plugin, then openclaw gateway restart.

Pre-repair openclaw plugins inspect codex --runtime --json excerpt:

{
  "plugin": {
    "id": "codex",
    "name": "Codex",
    "version": "2026.5.30-beta.1",
    "packageName": "@openclaw/codex",
    "source": "/home/ubuntu/.openclaw/npm/projects/openclaw-codex-8902d781d4/node_modules/@openclaw/codex/dist/index.js",
    "rootDir": "/home/ubuntu/.openclaw/npm/projects/openclaw-codex-8902d781d4/node_modules/@openclaw/codex",
    "origin": "global",
    "trustedOfficialInstall": true,
    "enabled": true,
    "activated": true,
    "status": "loaded",
    "providerIds": ["codex"],
    "agentHarnessIds": ["codex"]
  }
}

Repair command and output:

$ openclaw plugins update codex && openclaw gateway restart
Installing @openclaw/codex into /home/ubuntu/.openclaw/npm/projects/openclaw-codex-8902d781d4…
Linked peerDependency "openclaw" -> /usr/lib/node_modules/openclaw
Updated codex: 2026.5.30-beta.1 -> 2026.6.1.
Restart the gateway to load plugins and hooks.
Restarted systemd service: openclaw-gateway.service

Post-repair gateway status --deep no longer reports plugin drift:

OpenClaw 2026.6.1 (2e08f0f)
CLI version: 2026.6.1 (/usr/bin/openclaw)
Gateway version: 2026.6.1
Runtime: running
Connectivity probe: ok
Capability: admin-capable

Post-repair plugins inspect codex excerpt:

{
  "plugin": {
    "id": "codex",
    "version": "2026.6.1",
    "packageName": "@openclaw/codex",
    "source": "/home/ubuntu/.openclaw/npm/projects/openclaw-codex-8902d781d4/node_modules/@openclaw/codex/dist/index.js",
    "trustedOfficialInstall": true,
    "enabled": true,
    "activated": true,
    "status": "loaded"
  }
}

Post-repair doctor still illustrates the diagnostic gap: it reports plugin counts/errors, but not version alignment status:

◇  Plugins ──────╮
│                │
│  Loaded: 13    │
│  Imported: 0   │
│  Disabled: 84  │
│  Errors: 0     │
│                │
├────────────────╯

A journal excerpt around the repair shows the gateway restarting cleanly after the plugin update:

2026-06-06T09:16:51.899+00:00 [gateway] http server listening (9 plugins: active-memory, browser, codex, file-transfer, google, memory-core, memory-wiki, telegram, workboard; 5.7s)
2026-06-06T09:16:52.166+00:00 [gateway] ready
2026-06-06T09:16:52.642+00:00 [telegram] [default] starting provider (@Ant_clawd_bot)
2026-06-06T09:16:53.732+00:00 [telegram] [diag] isolated polling ingress started spool=/home/ubuntu/.openclaw/telegram/ingress-spool-default

Impact and severity

Affected: operators who rely on openclaw doctor after upgrades to validate production health, especially installs using official managed runtime plugins such as codex.

Severity: medium. The gateway can appear healthy while an official runtime-critical plugin is stale. This can cause confusing behavior after upgrade and makes the recommended post-upgrade check incomplete.

Frequency: observed once after a live stable upgrade to 2026.6.1; exact reproduction path from a clean install is not yet isolated.

Consequence: users may miss official plugin drift unless they know to run openclaw gateway status --deep or have custom diagnostics doing it for them.

Additional information

Related but not the same as #90418 / #90474. Those cover repeated legacy plugin install metadata warnings after plugins appear to update. This report is narrower: an official managed plugin actually remained on an old beta version, gateway status --deep correctly detected the drift, but doctor did not surface the same health failure.

Suggested fix: have doctor call/reuse the existing plugin version drift detector from gateway status --deep, at least for trusted official active plugins, and include the same repair command in doctor output.

Metadata

Metadata

Assignees

Labels

P2Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.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