openclaw - 💡(How to fix) Fix v2026.4.5 regression: cron/worker processes spin at 100% CPU due to unconditional plugin import [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#62289Fetched 2026-04-08 03:06:35
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
0
Participants
Timeline (top)
commented ×1subscribed ×1

Referencing #61701 and #62051 — both are caused by the same regression in v2026.4.5.

cron-cli-Dtvnx5y1.js gained a bare side-effect import that unconditionally loads all channel plugins in every worker process:

import "./plugins-wZ5d6YSY.js";

This triggers full plugin registry initialization (BlockRun providers, channel connectors, etc.) in every openclaw-cron subprocess at startup. The initialization is pure CPU-bound JS with no I/O — it never completes, causing the process to spin indefinitely.

Root Cause

Plugin loading should only run inside the gateway process. Worker processes only need to call gateway RPC (callGatewayFromCli) — they have no use for a locally-initialized plugin registry.

The check suggested in #62051 (OPENCLAW_SERVICE_KIND === 'gateway') is the right direction, but a simpler fix is to remove the import from the cron CLI entry entirely.

Fix Action

Fix / Workaround

Workaround (no downgrade needed)

This patch survives until the next npm install -g openclaw.

Code Example

import "./plugins-wZ5d6YSY.js";

---

- import "./plugins-wZ5d6YSY.js";
RAW_BUFFERClick to expand / collapse

Summary

Referencing #61701 and #62051 — both are caused by the same regression in v2026.4.5.

cron-cli-Dtvnx5y1.js gained a bare side-effect import that unconditionally loads all channel plugins in every worker process:

import "./plugins-wZ5d6YSY.js";

This triggers full plugin registry initialization (BlockRun providers, channel connectors, etc.) in every openclaw-cron subprocess at startup. The initialization is pure CPU-bound JS with no I/O — it never completes, causing the process to spin indefinitely.

Affected processes

  • openclaw-cron — spawned per scheduled job
  • Any other worker process that imports cron-cli

Root cause

Plugin loading should only run inside the gateway process. Worker processes only need to call gateway RPC (callGatewayFromCli) — they have no use for a locally-initialized plugin registry.

The check suggested in #62051 (OPENCLAW_SERVICE_KIND === 'gateway') is the right direction, but a simpler fix is to remove the import from the cron CLI entry entirely.

Workaround (no downgrade needed)

Remove line 7 from cron-cli-Dtvnx5y1.js in your local installation:

- import "./plugins-wZ5d6YSY.js";

Path: $(npm root -g)/openclaw/dist/cron-cli-Dtvnx5y1.js

This patch survives until the next npm install -g openclaw.

Environment

  • macOS arm64, openclaw v2026.4.5
  • 19 cron jobs configured
  • Two openclaw-cron processes spawned simultaneously, each at 100% CPU, no network activity

extent analysis

TL;DR

Remove the unnecessary import statement from cron-cli-Dtvnx5y1.js to prevent unconditional loading of all channel plugins in worker processes.

Guidance

  • Identify the file cron-cli-Dtvnx5y1.js in your local installation, located at $(npm root -g)/openclaw/dist/.
  • Remove the line import "./plugins-wZ5d6YSY.js"; (line 7) from the file to prevent plugin registry initialization in worker processes.
  • Verify that the openclaw-cron processes are no longer spinning indefinitely at 100% CPU after applying the change.
  • Note that this workaround will need to be reapplied after running npm install -g openclaw again.

Example

The fix involves removing the following line from cron-cli-Dtvnx5y1.js:

- import "./plugins-wZ5d6YSY.js";

This change prevents the unnecessary loading of plugins in worker processes.

Notes

This workaround is specific to openclaw v2026.4.5 and may not be necessary in future versions. The fix is also local to the installation and will need to be reapplied if the package is reinstalled.

Recommendation

Apply the workaround by removing the unnecessary import statement, as it is a straightforward and effective solution to the problem.

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

openclaw - 💡(How to fix) Fix v2026.4.5 regression: cron/worker processes spin at 100% CPU due to unconditional plugin import [1 comments, 2 participants]