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
- Have globally installed plugins via
openclaw plugins install @openclaw/feishu and openclaw plugins install @memtensor/memos-cloud-openclaw-plugin
- Verify 3 plugins loaded:
feishu, memory-core, memos-cloud-openclaw-plugin
- Run
update.run (OpenClaw self-update from WebUI or CLI)
- After restart, only
memory-core (bundled) loads — feishu and memos-cloud are gone
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
Bug Description
When running
update.run(OpenClaw self-update), theplugins.installssection inopenclaw.jsonis 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/feishu,@memtensor/memos-cloud-openclaw-plugin~/.openclaw/npm/node_modules/Reproduction Steps
openclaw plugins install @openclaw/feishuandopenclaw plugins install @memtensor/memos-cloud-openclaw-pluginfeishu,memory-core,memos-cloud-openclaw-pluginupdate.run(OpenClaw self-update from WebUI or CLI)memory-core(bundled) loads — feishu and memos-cloud are goneplugins.installsinopenclaw.jsonis{}Evidence from logs
Previously (before update):
Impact
plugins.installswas{}— no install records persisted across the updateWorkaround
Manually re-install plugins after every update:
Suggested Fix
update.runshould preserveplugins.installsandplugins.entrieswhen writing the updated config, or the update process should re-verify and restore install records after completion.Related
plugins/installs.jsonfile at~/.openclaw/plugins/installs.jsoncorrectly retains install records, butopenclaw.jsonplugins.installsis what the gateway uses at startupinstalls.jsonpoint to correct paths, but the gateway reports "plugin not found" becauseplugins.installsinopenclaw.jsonis empty