openclaw - 💡(How to fix) Fix [Bug]: Gateway deferred loading silently skips all non-bundled (npm/global/workspace) plugins [5 comments, 3 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#81295Fetched 2026-05-14 03:33:36
View on GitHub
Comments
5
Participants
3
Timeline
9
Reactions
2
Timeline (top)
commented ×5labeled ×2closed ×1cross-referenced ×1

Description

After upgrading to OpenClaw 2026.5.x, the gateway process only loads the 7 stock (bundled) plugins, silently skipping all non-bundled plugins installed via npm, global extensions, or plugins.load.paths. No error or warning is logged — the plugins simply never appear.

Environment

Steps to Reproduce

  1. Install OpenClaw 2026.5.x
  2. Install any non-bundled plugin via npm: openclaw extension install @jiggai/kitchen
  3. Confirm the plugin appears in ~/.openclaw/npm/node_modules/
  4. Confirm openclaw.json has the plugin enabled in plugins.entries
  5. Run openclaw gateway install --force && openclaw gateway restart
  6. Observe only 7 stock plugins load; the npm-installed plugin is never loaded

Expected Behavior

All enabled plugins from all discovery roots (stock, global, workspace, npm, plugins.load.paths) should be discovered and loaded by the gateway.

Actual Behavior

Only 7 stock/bundled plugins load. Non-bundled plugins are completely ignored with no log output indicating why.

Investigation / Root Cause Hypothesis

The gateway uses a deferred loading architecture that pre-computes a pluginMetadataSnapshot during bootstrap. This snapshot appears to be built only from the stock plugin directory and is then cached. When the gateway later performs actual plugin loading, it reads from this cached snapshot rather than performing fresh discovery across all plugin roots.

Key observations:

  • openclaw extensions list correctly discovers all plugins (stock + npm + global)
  • Only the gateway process fails to load non-bundled plugins
  • The issue is in the gateway's plugin discovery/loading pipeline, not in individual plugin packaging
  • Plugins that were bundled/stock (like @openclaw/discord) also fail to load when installed via npm instead

Workarounds Attempted (all failed)

  1. plugins.load.paths — Added explicit paths to plugin directories; gateway still only loads stock plugins
  2. Symlinks in ~/.openclaw/extensions/ — Symlinked npm-installed plugins into the global extensions directory; not picked up
  3. npm install in extensions dir — Installed plugins directly; not discovered by gateway
  4. gateway install --force + restart — Regenerated systemd unit and restarted; no change
  5. Clearing plugins.load.paths to [] — No effect

Configuration

// ~/.openclaw/openclaw.json (relevant sections)

  {
    "plugins": {                                                                                                                                                 
      "entries": {                                          
        "kitchen": { "enabled": true },                                                                                                                  
        "recipes": { "enabled": true },
        "discord": { "enabled": true }                                                                                                                 
      },                                                    
      "load": {                                                                                                                                                  
        "paths": []
      }                                                                                                                                                          
    }                                                       
  }

Error Message

After upgrading to OpenClaw 2026.5.x, the gateway process only loads the 7 stock (bundled) plugins, silently skipping all non-bundled plugins installed via npm, global extensions, or plugins.load.paths. No error or warning is logged — the plugins simply never appear.

Root Cause

Investigation / Root Cause Hypothesis

Fix Action

Fix / Workaround

Workarounds Attempted (all failed)

Code Example

{
    "plugins": {                                                                                                                                                 
      "entries": {                                          
        "kitchen": { "enabled": true },                                                                                                                  
        "recipes": { "enabled": true },
        "discord": { "enabled": true }                                                                                                                 
      },                                                    
      "load": {                                                                                                                                                  
        "paths": []
      }                                                                                                                                                          
    }                                                       
  }

---
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Description

After upgrading to OpenClaw 2026.5.x, the gateway process only loads the 7 stock (bundled) plugins, silently skipping all non-bundled plugins installed via npm, global extensions, or plugins.load.paths. No error or warning is logged — the plugins simply never appear.

Environment

Steps to Reproduce

  1. Install OpenClaw 2026.5.x
  2. Install any non-bundled plugin via npm: openclaw extension install @jiggai/kitchen
  3. Confirm the plugin appears in ~/.openclaw/npm/node_modules/
  4. Confirm openclaw.json has the plugin enabled in plugins.entries
  5. Run openclaw gateway install --force && openclaw gateway restart
  6. Observe only 7 stock plugins load; the npm-installed plugin is never loaded

Expected Behavior

All enabled plugins from all discovery roots (stock, global, workspace, npm, plugins.load.paths) should be discovered and loaded by the gateway.

Actual Behavior

Only 7 stock/bundled plugins load. Non-bundled plugins are completely ignored with no log output indicating why.

Investigation / Root Cause Hypothesis

The gateway uses a deferred loading architecture that pre-computes a pluginMetadataSnapshot during bootstrap. This snapshot appears to be built only from the stock plugin directory and is then cached. When the gateway later performs actual plugin loading, it reads from this cached snapshot rather than performing fresh discovery across all plugin roots.

Key observations:

  • openclaw extensions list correctly discovers all plugins (stock + npm + global)
  • Only the gateway process fails to load non-bundled plugins
  • The issue is in the gateway's plugin discovery/loading pipeline, not in individual plugin packaging
  • Plugins that were bundled/stock (like @openclaw/discord) also fail to load when installed via npm instead

Workarounds Attempted (all failed)

  1. plugins.load.paths — Added explicit paths to plugin directories; gateway still only loads stock plugins
  2. Symlinks in ~/.openclaw/extensions/ — Symlinked npm-installed plugins into the global extensions directory; not picked up
  3. npm install in extensions dir — Installed plugins directly; not discovered by gateway
  4. gateway install --force + restart — Regenerated systemd unit and restarted; no change
  5. Clearing plugins.load.paths to [] — No effect

Configuration

// ~/.openclaw/openclaw.json (relevant sections)

  {
    "plugins": {                                                                                                                                                 
      "entries": {                                          
        "kitchen": { "enabled": true },                                                                                                                  
        "recipes": { "enabled": true },
        "discord": { "enabled": true }                                                                                                                 
      },                                                    
      "load": {                                                                                                                                                  
        "paths": []
      }                                                                                                                                                          
    }                                                       
  }

Steps to reproduce

  1. Install OpenClaw 2026.5.x
  2. Install any non-bundled plugin via npm: openclaw extension install @jiggai/kitchen
  3. Confirm the plugin appears in ~/.openclaw/npm/node_modules/
  4. Confirm openclaw.json has the plugin enabled in plugins.entries
  5. Run openclaw gateway install --force && openclaw gateway restart
  6. Observe only 7 stock plugins load; the npm-installed plugin is never loaded

Expected behavior

All enabled plugins from all discovery roots (stock, global, workspace, npm, plugins.load.paths) should be discovered and loaded by the gateway.

Actual behavior

Only 7 stock/bundled plugins load. Non-bundled plugins are completely ignored with no log output indicating why.

OpenClaw version

2026.5.7

Operating system

Linux (Ubuntu, kernel 6.8.0-111-generic)

Install method

npm global

Model

openai-codex/gpt-5.5

Provider / routing chain

openclaw -> tailscale -> comcast

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

MAJOR - No 3rd party plugins can load

Additional information

No response

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

All enabled plugins from all discovery roots (stock, global, workspace, npm, plugins.load.paths) should be discovered and loaded by the gateway.

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]: Gateway deferred loading silently skips all non-bundled (npm/global/workspace) plugins [5 comments, 3 participants]