openclaw - 💡(How to fix) Fix `openclaw doctor --fix` does not detect or repair invalid `plugins.load.paths` entries after upgrade [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#53649Fetched 2026-04-08 01:25:19
View on GitHub
Comments
1
Participants
2
Timeline
1
Reactions
0
Author
Participants
Timeline (top)
commented ×1

Error Message

After upgrading openclaw, the gateway fails to start with the error:

  • Error thrown at: manifest-registry-B5JNQdOM.js:4237discoverFromPath() checks fs.existsSync(resolved) and pushes error but doesn't attempt repair
  • Error mapped to path at: io-y3Az_Onx.js:6310if (!diag.pluginId && diag.message.includes("plugin path not found")) path = "plugins.load.paths"
  1. If corrected path found, update config; if not, remove invalid entry and warn user

Root Cause

When openclaw upgrades, bundled plugin paths may change from:

  • /openclaw/extensions/<plugin>/openclaw/dist/extensions/<plugin>

However, the user's ~/.openclaw/openclaw.json retains the old paths in plugins.load.paths. Running openclaw doctor --fix does not detect or repair this issue.

Fix Action

Workaround

Manually edit ~/.openclaw/openclaw.json and update all /openclaw/extensions/<plugin> paths to /openclaw/dist/extensions/<plugin>.

Code Example

Invalid config at ~/.openclaw/openclaw.json:
- plugins.load.paths: plugin: plugin path not found: /home/hzmember/.npm-global/lib/node_modules/openclaw/extensions/acpx
RAW_BUFFERClick to expand / collapse

Problem

After upgrading openclaw, the gateway fails to start with the error:

Invalid config at ~/.openclaw/openclaw.json:
- plugins.load.paths: plugin: plugin path not found: /home/hzmember/.npm-global/lib/node_modules/openclaw/extensions/acpx

Root Cause

When openclaw upgrades, bundled plugin paths may change from:

  • /openclaw/extensions/<plugin>/openclaw/dist/extensions/<plugin>

However, the user's ~/.openclaw/openclaw.json retains the old paths in plugins.load.paths. Running openclaw doctor --fix does not detect or repair this issue.

Expected Behavior

openclaw doctor --fix should:

  1. Validate that each path in plugins.load.paths exists on filesystem
  2. If a path doesn't exist, check if a corrected path exists (e.g., dist/extensions/ instead of extensions/)
  3. Auto-update invalid paths to their correct locations
  4. Or at minimum, report the mismatch and guide the user to fix it

Actual Behavior

openclaw doctor --fix successfully repairs some issues (stale plugins.allow/plugins.entries entries, cron job format, etc.) but ignores invalid plugins.load.paths entries entirely.

Evidence

  • Error thrown at: manifest-registry-B5JNQdOM.js:4237discoverFromPath() checks fs.existsSync(resolved) and pushes error but doesn't attempt repair
  • Error mapped to path at: io-y3Az_Onx.js:6310if (!diag.pluginId && diag.message.includes("plugin path not found")) path = "plugins.load.paths"
  • Doctor repair logic: prompt-select-styled-DhgZI13f.jsscanStalePluginConfig() only handles plugins.allow and plugins.entries, NOT plugins.load.paths

Suggested Fix

Add path validation + auto-repair to doctor --fix:

  1. In scanStalePluginConfig() or a new scanPluginLoadPaths(), check each path in plugins.load.paths
  2. If path doesn't exist, attempt to find corrected path (e.g., check dist/extensions/<id>)
  3. If corrected path found, update config; if not, remove invalid entry and warn user

Workaround

Manually edit ~/.openclaw/openclaw.json and update all /openclaw/extensions/<plugin> paths to /openclaw/dist/extensions/<plugin>.

Environment

  • openclaw version: 2026.3.23-2
  • Installation: npm global (~/.npm-global/)

extent analysis

Fix Plan

To fix the issue, we need to update the plugins.load.paths in ~/.openclaw/openclaw.json to reflect the new paths after the openclaw upgrade.

Here are the steps:

  • Manually edit ~/.openclaw/openclaw.json and update all /openclaw/extensions/<plugin> paths to /openclaw/dist/extensions/<plugin>.
  • Alternatively, we can create a script to automate this process. Here's an example in Node.js:
const fs = require('fs');
const path = require('path');

const configPath = path.join(process.env.HOME, '.openclaw', 'openclaw.json');
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));

config.plugins.load.paths = config.plugins.load.paths.map((pluginPath) => {
  if (pluginPath.includes('/openclaw/extensions/')) {
    return pluginPath.replace('/openclaw/extensions/', '/openclaw/dist/extensions/');
  }
  return pluginPath;
});

fs.writeFileSync(configPath, JSON.stringify(config, null, 2));

This script reads the openclaw.json file, updates the plugins.load.paths array, and writes the updated config back to the file.

Verification

To verify that the fix worked, start the gateway again and check for any errors related to plugins.load.paths. If the issue is resolved, the gateway should start without any errors.

Extra Tips

To prevent similar issues in the future, it's a good idea to:

  • Run the script above after each openclaw upgrade to ensure that the plugins.load.paths are up-to-date.
  • Consider adding a check in the doctor --fix command to validate and update the plugins.load.paths automatically.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING