Skip to content

[Bug]: 2026.5.27 Refresh still says stale #87730

Description

@jasonftl

Bug type

Behavior bug

Beta release blocker

No

Summary

On 2026.5.27, a manual plugin refresh on my source-checkout install still leaves the CLI warning that the saved plugin list is stale.

Steps to reproduce

  1. Use a source checkout of OpenClaw 2026.5.27 with the built output present.
  2. Run:
openclaw plugins registry --refresh
  1. Run:
openclaw plugins list --json | jq '.registry'

Expected behavior

After the manual refresh, the next plugin list command should use the saved plugin list or report no stale-source warning.

Actual behavior

The refresh updates the saved plugin list, but the next command still ignores it and reports persisted-registry-stale-source.

OpenClaw version

2026.5.27 (27ae826)

Operating system

macOS 26.5, Node v22.22.3

Install method

Source checkout at ~/dev/openclaw-src, built locally. Main CLI is installed through pnpm at ~/Library/pnpm/openclaw.

Model

No model call is involved in this repro. The live default agent model on this install is openai/gpt-5.5 with agentRuntime.id = codex.

Provider / routing chain

No provider request is made. The repro is CLI-only:

openclaw plugins registry --refresh -> openclaw plugins list --json

Additional provider/model setup details

The live default agent config follows the same Codex setup used in prior reports:

agents.defaults.model.primary = openai/gpt-5.5
agents.defaults.models.openai/gpt-5.5.agentRuntime.id = codex
plugins.allow includes codex
plugins.entries.codex.enabled = true

No token material is included here.

Logs, screenshots, and evidence

Version and CLI path:

$ command -v openclaw
~/Library/pnpm/openclaw

$ openclaw --version
OpenClaw 2026.5.27 (27ae826)

The manual refresh writes a fresh saved plugin list with no diagnostics:

$ jq '{generatedAtMs, refreshReason, pluginCount:(.plugins|length), installRecordCount:(.installRecords|length), diagnostics}' ~/.openclaw/plugins/installs.json
{
  "generatedAtMs": 1779989269983,
  "refreshReason": "manual",
  "pluginCount": 125,
  "installRecordCount": 3,
  "diagnostics": []
}

The next plugin list command still falls back to the derived list:

$ openclaw plugins list --json | jq '.registry'
{
  "source": "derived",
  "diagnostics": [
    {
      "level": "warn",
      "code": "persisted-registry-stale-source",
      "message": "Persisted plugin registry points at a different bundled plugin tree; using derived plugin index. Run `openclaw plugins registry --refresh` to update the persisted registry."
    }
  ]
}

The saved list contains both built plugin paths and source plugin paths:

$ jq -r '.plugins[] | select(.pluginId=="codex" or .pluginId=="whatsapp" or .pluginId=="slack" or .pluginId=="qa-lab" or .pluginId=="amazon-bedrock") | [.pluginId,.rootDir] | @tsv' ~/.openclaw/plugins/installs.json
codex	~/dev/openclaw-src/dist/extensions/codex
amazon-bedrock	~/dev/openclaw-src/extensions/amazon-bedrock
qa-lab	~/dev/openclaw-src/extensions/qa-lab
slack	~/dev/openclaw-src/extensions/slack
whatsapp	~/dev/openclaw-src/extensions/whatsapp

For at least some bundled plugins on this checkout, only the source path exists:

dist_whatsapp=missing
source_whatsapp=present
dist_slack=missing
source_slack=present

Impact and severity

Low to medium for source-checkout installs. The plugin list still works, but the warning survives the exact repair command it recommends, so operators cannot tell whether the saved plugin list is healthy.

Additional information

This looks like an OpenClaw bug rather than local deployment state because the refresh command updates OpenClaw's own saved file successfully, then the next OpenClaw command says that same saved file is stale.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.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

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions