openclaw - 💡(How to fix) Fix [Bug]: openclaw status fails on 2026.4.27 npm install: missing plugin runtime loader fallback path [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#75027Fetched 2026-05-01 05:38:59
View on GitHub
Comments
1
Participants
2
Timeline
4
Reactions
2
Author
Timeline (top)
labeled ×2closed ×1commented ×1

After upgrading to OpenClaw 2026.4.27 via global npm install, openclaw status fails with "Could not load plugin runtime loader for channel setup fallback." Gateway and health checks work, so the issue appears isolated to the status command's read-only channel/plugin scan path.

Error Message

[openclaw] Failed to start CLI: Error: Could not load plugin runtime loader for channel setup fallback.

Root Cause

No local patch applied to the global npm package because modifying bundled dist output would be risky and overwritten by upgrades.

Fix Action

Fix / Workaround

Workaround is to avoid openclaw status and use:

No local patch applied to the global npm package because modifying bundled dist output would be risky and overwritten by upgrades.

Code Example

dist/read-only-B4EkEtUx.js contains:

const LOADER_MODULE_CANDIDATES = [
new URL(../../plugins/loader.js”, import.meta.url),
new URL(../../plugins/loader.ts”, import.meta.url)
];

From this file:

/opt/homebrew/lib/node_modules/openclaw/dist/read-only-B4EkEtUx.js

those paths resolve to:

/opt/homebrew/lib/node_modules/plugins/loader.js
/opt/homebrew/lib/node_modules/plugins/loader.ts

Both files are missing.

Command used:

node - <<NODEconst { fileURLToPath } = require(‘node:url’);

const base = ‘file:///opt/homebrew/lib/node_modules/openclaw/dist/read-only-B4EkEtUx.js’;
for (const rel of [../../plugins/loader.js’,../../plugins/loader.ts’]) {
const u = new URL(rel, base);
const p = fileURLToPath(u);
console.log(rel, =>, p);
console.log(‘exists:, require(‘fs’).existsSync(p));
}
NODE

Output:

../../plugins/loader.js => /opt/homebrew/lib/node_modules/plugins/loader.js
exists: false
../../plugins/loader.ts => /opt/homebrew/lib/node_modules/plugins/loader.ts
exists: false

Inside the OpenClaw package, no packaged plugins/loader.js or plugins/loader.ts exists.

The bundled loader implementation appears to be present in:

/opt/homebrew/lib/node_modules/openclaw/dist/loader-CPsG_3Jg.js

It exports loadOpenClawPlugins as minified export r.
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

After upgrading to OpenClaw 2026.4.27 via global npm install, openclaw status fails with "Could not load plugin runtime loader for channel setup fallback." Gateway and health checks work, so the issue appears isolated to the status command's read-only channel/plugin scan path.

Steps to reproduce

  1. Install or upgrade OpenClaw to 2026.4.27 via global npm package.
  2. Confirm gateway is healthy with openclaw gateway status --deep and openclaw health.
  3. Run openclaw status.

Expected behavior

openclaw status should complete normally and show the status overview, or gracefully skip the channel setup fallback if the loader is not available.

Actual behavior

openclaw status fails with:

[openclaw] Failed to start CLI: Error: Could not load plugin runtime loader for channel setup fallback. at loadPluginLoaderModule (file:///opt/homebrew/lib/node_modules/openclaw/dist/read-only-B4EkEtUx.js:32:8) at resolveReadOnlyChannelPluginsForConfig (file:///opt/homebrew/lib/node_modules/openclaw/dist/read-only-B4EkEtUx.js:357:33) at listReadOnlyChannelPluginsForConfig (file:///opt/homebrew/lib/node_modules/openclaw/dist/read-only-B4EkEtUx.js:306:9) at buildChannelsTable (file:///opt/homebrew/lib/node_modules/openclaw/dist/status.scan.runtime-MRy8OcNY.js:284:23) at file:///opt/homebrew/lib/node_modules/openclaw/dist/status.scan-overview-BS9CQXl_.js:341:26

OpenClaw version

2026.4.27 (cbc2ba0)

Operating system

macOS 26.2 arm64

Install method

global npm package

Model

N/A - status command fails before model execution

Provider / routing chain

N/A - status command fails during local CLI status scan

Additional provider/model setup details

Gateway is healthy and running locally:

Service: LaunchAgent (loaded) Runtime: running Connectivity probe: ok Capability: admin-capable Listening: 127.0.0.1:18789

openclaw health works and reports configured channels and agents.

Logs, screenshots, and evidence

dist/read-only-B4EkEtUx.js contains:

const LOADER_MODULE_CANDIDATES = [
new URL(../../plugins/loader.js”, import.meta.url),
new URL(../../plugins/loader.ts”, import.meta.url)
];

From this file:

/opt/homebrew/lib/node_modules/openclaw/dist/read-only-B4EkEtUx.js

those paths resolve to:

/opt/homebrew/lib/node_modules/plugins/loader.js
/opt/homebrew/lib/node_modules/plugins/loader.ts

Both files are missing.

Command used:

node - <<‘NODE’
const { fileURLToPath } = require(‘node:url’);

const base = ‘file:///opt/homebrew/lib/node_modules/openclaw/dist/read-only-B4EkEtUx.js’;
for (const rel of [../../plugins/loader.js’, ‘../../plugins/loader.ts’]) {
const u = new URL(rel, base);
const p = fileURLToPath(u);
console.log(rel, ‘=>’, p);
console.log(‘exists:’, require(‘fs’).existsSync(p));
}
NODE

Output:

../../plugins/loader.js => /opt/homebrew/lib/node_modules/plugins/loader.js
exists: false
../../plugins/loader.ts => /opt/homebrew/lib/node_modules/plugins/loader.ts
exists: false

Inside the OpenClaw package, no packaged plugins/loader.js or plugins/loader.ts exists.

The bundled loader implementation appears to be present in:

/opt/homebrew/lib/node_modules/openclaw/dist/loader-CPsG_3Jg.js

It exports loadOpenClawPlugins as minified export r.

Impact and severity

Affected: openclaw status diagnostic command.

Not affected: gateway runtime, dashboard, openclaw gateway status –deep, openclaw health.

Severity: medium. Core service works, but the primary status diagnostic command fails on a packaged npm install.

Additional information

Workaround is to avoid openclaw status and use:

openclaw gateway status –deep openclaw health openclaw plugins list

No local patch applied to the global npm package because modifying bundled dist output would be risky and overwritten by upgrades.

extent analysis

TL;DR

The issue can be worked around by using alternative commands like openclaw gateway status --deep and openclaw health instead of openclaw status, as the problem seems to be isolated to the openclaw status command's plugin loader.

Guidance

  • The error message indicates a failure to load the plugin runtime loader for the channel setup fallback, suggesting an issue with how the loader is referenced or its existence.
  • The provided logs and evidence show that the plugins/loader.js and plugins/loader.ts files are missing, which are expected by the read-only-B4EkEtUx.js file.
  • The workaround provided in the issue, using openclaw gateway status --deep and openclaw health, can be used temporarily until a fix is found.
  • It might be helpful to investigate why the plugins/loader.js and plugins/loader.ts files are not included in the OpenClaw package or to find an alternative way to load the plugin runtime loader.

Example

No specific code example is provided as the issue seems to be related to missing files within the OpenClaw package rather than a code logic error.

Notes

The issue appears to be specific to the openclaw status command and does not affect other parts of the OpenClaw service, such as the gateway runtime or health checks. The severity is medium, as the core service works but a key diagnostic command fails.

Recommendation

Apply the workaround by using openclaw gateway status --deep and openclaw health instead of openclaw status, as this allows for continued use of OpenClaw's diagnostic capabilities without relying on the faulty openclaw status command.

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…

FAQ

Expected behavior

openclaw status should complete normally and show the status overview, or gracefully skip the channel setup fallback if the loader is not available.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug]: openclaw status fails on 2026.4.27 npm install: missing plugin runtime loader fallback path [1 comments, 2 participants]