openclaw - 💡(How to fix) Fix perf] 2026.4.26: bundled plugin runtime deps staging burns 85-100% CPU continuously after upgrade [2 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#73530Fetched 2026-04-29 06:18:40
View on GitHub
Comments
2
Participants
3
Timeline
5
Reactions
0
Timeline (top)
commented ×2closed ×1cross-referenced ×1labeled ×1

After upgrading from 2026.4.21 to 2026.4.26, the gateway process pegs 85-100% CPU immediately after startup and never recovers. Chat becomes unresponsive, WebSocket handshakes time out, and the gateway eventually becomes unreachable.

Environment OpenClaw version: 2026.4.26 (be8c246)

Node: v24.14.1

OS: macOS 26.4.1 (ARM64)

Install method: npm install -g openclaw@latest

Root Cause

After upgrading from 2026.4.21 to 2026.4.26, the gateway process pegs 85-100% CPU immediately after startup and never recovers. Chat becomes unresponsive, WebSocket handshakes time out, and the gateway eventually becomes unreachable.

Environment OpenClaw version: 2026.4.26 (be8c246)

Node: v24.14.1

OS: macOS 26.4.1 (ARM64)

Install method: npm install -g openclaw@latest

RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

After upgrading from 2026.4.21 to 2026.4.26, the gateway process pegs 85-100% CPU immediately after startup and never recovers. Chat becomes unresponsive, WebSocket handshakes time out, and the gateway eventually becomes unreachable.

Environment OpenClaw version: 2026.4.26 (be8c246)

Node: v24.14.1

OS: macOS 26.4.1 (ARM64)

Install method: npm install -g openclaw@latest

Steps to reproduce

npm install -g [email protected]

openclaw gateway --port 5757 --verbose

Observe CPU immediately climbs to 85-100% and stays there

sample <pid> 3 confirms fs.Link / unlinkat / string comparison loop in microtask queue

Compounding issues triggered by the CPU starvation Once the gateway is CPU-starved, several secondary failures cascade:

Stale .openclaw-runtime-mirror.lock: If the gateway is killed or suspended during dep staging, the lock is orphaned. Next startup waits 300s (5 min) per channel before timing out: Timed out waiting for bundled runtime deps lock (waited=300035ms, ownerAge=435608ms)

Bonjour mDNS restart loop: The advertiser gets stuck cycling probing → announcing → watchdog restart every few seconds, adding CPU load

WhatsApp Baileys reconnect storm: WhatsApp 408 timeouts trigger retry loops that queue up against the starved event loop

openclaw-node service reconnect flood: The node service (KeepAlive: true, ThrottleInterval: 1) hammers the gateway with WebSocket reconnects that all time out, further starving the event loop

Expected behavior

The runtime deps staging should:

Run once at install/first-boot, not on every startup

Record a completion marker so subsequent boots skip the staging

Not re-enter the staging loop from the microtask queue

Have a bounded iteration count or yield to the event loop between batches

Actual behavior

macOS sample profiling shows the main thread stuck in a tight microtask loop inside the bundled plugin runtime deps staging system (~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-b1e85c141c58/):

682 uv__work_done → FSReqPromise → MicrotaskQueue::RunMicrotasks → PromiseFulfillReactionJob → AsyncFunctionAwaitResolveClosure → InterpreterEntryTrampoline (deep JS loop) → fs.Link (hardlink) — 430+ samples → fs.RmSync / unlinkat — 150+ samples → StrictEqual / StringAdd (path comparisons) — 200+ samples

Copy The dist/ mirror directory contains 2789 files and the staging loop re-hardlinks them continuously without reaching a terminal state. The .openclaw-runtime-deps.json status file only contains specs — no completion marker.

Clearing the cache (rm -rf ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*) temporarily drops CPU to ~5% for ~60 seconds, then the loop resumes as the staging rebuilds and re-enters the same hot path.

OpenClaw version

2026.4.26

Operating system

macOS 26.4.1

Install method

npm

Model

gpt-5.4-mini

Provider / routing chain

minimax

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

The high CPU usage issue in OpenClaw version 2026.4.26 can be mitigated by modifying the runtime deps staging system to prevent continuous re-hardlinking of files.

Guidance

  • Investigate the ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-b1e85c141c58/ directory to understand why the staging loop is not reaching a terminal state.
  • Consider adding a completion marker to the .openclaw-runtime-deps.json status file to prevent re-entry into the staging loop.
  • Review the microtask queue implementation to ensure it yields to the event loop between batches, preventing CPU starvation.
  • Temporarily clearing the cache (rm -rf ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*) may provide a short-term workaround.

Example

No code snippet is provided as the issue is related to the internal implementation of OpenClaw.

Notes

The issue seems to be specific to the macOS environment and OpenClaw version 2026.4.26. The provided information suggests a problem with the runtime deps staging system, but further investigation is needed to determine the root cause.

Recommendation

Apply a workaround by modifying the runtime deps staging system to prevent continuous re-hardlinking of files, as the root cause is not fully understood and a fix may require changes to the OpenClaw codebase.

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

The runtime deps staging should:

Run once at install/first-boot, not on every startup

Record a completion marker so subsequent boots skip the staging

Not re-enter the staging loop from the microtask queue

Have a bounded iteration count or yield to the event loop between batches

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 perf] 2026.4.26: bundled plugin runtime deps staging burns 85-100% CPU continuously after upgrade [2 comments, 3 participants]