Skip to content

Bug: update.run clears plugins.installs, causing all globally-installed plugins to be lost on restart #76430

Description

@jumperrong

Bug Description

When running update.run (OpenClaw self-update), the plugins.installs section in openclaw.json is cleared to {}. After the gateway restarts, all globally-installed plugins are lost because the plugin discovery mechanism relies on install records to locate npm-installed plugins.

Environment

  • OpenClaw version: 2026.5.2 (8b2a6e5)
  • OS: macOS (arm64)
  • Plugins affected: @openclaw/feishu, @memtensor/memos-cloud-openclaw-plugin
  • Plugin install location: ~/.openclaw/npm/node_modules/

Reproduction Steps

  1. Have globally installed plugins via openclaw plugins install @openclaw/feishu and openclaw plugins install @memtensor/memos-cloud-openclaw-plugin
  2. Verify 3 plugins loaded: feishu, memory-core, memos-cloud-openclaw-plugin
  3. Run update.run (OpenClaw self-update from WebUI or CLI)
  4. After restart, only memory-core (bundled) loads — feishu and memos-cloud are gone
  5. plugins.installs in openclaw.json is {}

Evidence from logs

2026-05-03T09:31:19 [reload] config change detected: models.providers.bailian.baseUrl, models.providers.bailian.apiKey
2026-05-03T09:31:44 [gateway] update.run completed status=ok
2026-05-03T09:31:49 [gateway] auto-enabled plugins:
- memory-core tool configured, enabled automatically.
2026-05-03T09:31:50 [gateway] http server listening (1 plugin: memory-core; 3.2s)

Previously (before update):

2026-04-30T07:35:56 [gateway] ready (3 plugins: feishu, memory-core, memos-cloud-openclaw-plugin; 1.8s)

Impact

  • All cron task notifications failed (03:00–06:00 window) because the feishu channel plugin was unavailable
  • Gateway required manual plugin re-installation to restore functionality
  • plugins.installs was {} — no install records persisted across the update

Workaround

Manually re-install plugins after every update:

openclaw plugins install @openclaw/feishu
openclaw plugins install @memtensor/memos-cloud-openclaw-plugin
openclaw gateway restart

Suggested Fix

update.run should preserve plugins.installs and plugins.entries when writing the updated config, or the update process should re-verify and restore install records after completion.

Related

  • plugins/installs.json file at ~/.openclaw/plugins/installs.json correctly retains install records, but openclaw.json plugins.installs is what the gateway uses at startup
  • The install records in installs.json point to correct paths, but the gateway reports "plugin not found" because plugins.installs in openclaw.json is empty

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions