openclaw - ✅(Solved) Fix [Bug]: 2026.4.26 Telegram-only gateway spins CPU in channel runtime / staged runtime deps [1 pull requests, 7 comments, 5 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#73647Fetched 2026-04-29 06:16:58
View on GitHub
Comments
7
Participants
5
Timeline
12
Reactions
0
Timeline (top)
commented ×7cross-referenced ×2labeled ×2closed ×1

OpenClaw 2026.4.26 still pegs CPU in a Telegram-only gateway after the 4.26 runtime-deps fix. The previous openclaw-unknown-* runtime-deps directories are gone, but the gateway now loops around channel runtime / staged Telegram runtime dependency resolution.

Error Message

Gateway starts and reaches:

Root Cause

OpenClaw 2026.4.26 still pegs CPU in a Telegram-only gateway after the 4.26 runtime-deps fix. The previous openclaw-unknown-* runtime-deps directories are gone, but the gateway now loops around channel runtime / staged Telegram runtime dependency resolution.

Fix Action

Fixed

PR fix notes

PR #73678: fix: cache plugin manifest loads by file signature

Description (problem / solution / changelog)

Summary

  • cache loadPluginManifest results by manifest path, hardlink policy, optional real root, and file signature
  • reuse the normalized manifest result when the manifest file is unchanged
  • add regression coverage for repeated unchanged manifest loads

Context

This is the smallest upstreamable slice from a v2026.4.26 CPU investigation on a Docker/Synology deployment. The gateway was repeatedly spending CPU in plugin manifest/runtime discovery during channel startup; caching normalized manifest loads reduced repeated strict JSON/JSON5 parse and normalization work in bursty startup paths.

Related issue: #73647

Validation

  • node --import tsx <manifest-cache-smoke> => manifest cache smoke ok
  • corepack pnpm exec oxfmt --check --threads=1 src/plugins/manifest.ts src/plugins/manifest.json5-tolerance.test.ts
  • corepack pnpm run tsgo:test:src

Note: direct vitest run src/plugins/manifest.json5-tolerance.test.ts was not used as final validation on the NAS because the default Vitest invocation spent several minutes in project bundling. The source typecheck and a direct runtime smoke both passed.

Changed files

  • src/plugins/manifest.json5-tolerance.test.ts (modified, +35/-1)
  • src/plugins/manifest.ts (modified, +68/-7)

Code Example

http server listening (1 plugin: telegram; ~9s)
Sometimes it reaches:

[telegram] [default] starting provider
gateway ready
But the openclaw-gateway process remains around 100% CPU.

strace evidence
With Telegram-only config and clean runtime deps, repeated reads include:

~/.npm-global/lib/node_modules/openclaw/dist/channel.runtime--9uZPcUw.js
~/.npm-global/lib/node_modules/openclaw/dist/dist-DS2D_iUu.js
~/.npm-global/lib/node_modules/openclaw/dist/runtime-schema-TpYHXgGk.js
~/.npm-global/lib/node_modules/openclaw/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/.openclaw-runtime-deps.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/node_modules/grammy/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/node_modules/undici/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/node_modules/@grammyjs/runner/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/dist/extensions/telegram/package.json
Earlier samples also showed repeated reads of bundled extension manifests under:

~/.npm-global/lib/node_modules/openclaw/dist/extensions/*/openclaw.plugin.json


### Steps to reproduce

## Steps to reproduce

Install OpenClaw 2026.4.26 via npm.
   npm install -g [email protected]
   openclaw --version
Configure a Telegram-only gateway.

{
  "plugins": {
    "allow": ["telegram"],
    "entries": {
      "telegram": {
        "enabled": true,
        "config": {}
      }
    }
  }
}
Disable other surfaces/plugins such as memory-core, discord, slack, browser, and acp.

Remove stale plugin/runtime state.

systemctl --user stop openclaw-gateway.service

mv ~/.openclaw/plugins/installs.json \
  ~/.openclaw/plugins/installs.json.disabled 2>/dev/null || true

rm -rf ~/.openclaw/plugin-runtime-deps/openclaw-unknown-*
Start the gateway.

systemctl --user restart openclaw-gateway.service
sleep 15

pid=$(pgrep -f 'openclaw-gateway|openclaw.*gateway' | head -1)
ps -o pid,pcpu,pmem,etime,args -p "$pid"
Observe that the gateway reaches HTTP listening with only Telegram loaded, but CPU remains around 100%.

grep -E 'http server listening|gateway ready|starting provider|telegram|error' \
  /tmp/openclaw/openclaw-*.log
Capture repeated runtime reads with strace.

sudo timeout 6 strace -yy -f -p "$pid" \
  -e trace=openat,read,pread64,close \
  -s 180 -o /tmp/openclaw-repro.strace

sudo grep -oE '~[^"> ]+|/home/[^"> ]+|/tmp/[^"> ]+|/usr/[^"> ]+' /tmp/openclaw-repro.strace \
  | sed "s#/home/[^/]\\+#~#g" \
  | sort | uniq -c | sort -nr | head -40

### Expected behavior

Telegram-only gateway should settle to low idle CPU after startup.

### Actual behavior

100% CPU Usage after startup

### OpenClaw version

4.25 > 4.26

### Operating system

Ubuntu 24.04 noble

### Install method

npm global, systemd user service

### Model

gpt 5.5

### Provider / routing chain

OpenClaw gateway -> openai-codex OAuth profile

### Additional provider/model setup details

Telegram channel only. Gateway running as a systemd user service on loopback port 18789. Auth uses an openai-codex OAuth profile; no custom model router involved in the CPU loop repro.

### Logs, screenshots, and evidence
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Summary

OpenClaw 2026.4.26 still pegs CPU in a Telegram-only gateway after the 4.26 runtime-deps fix. The previous openclaw-unknown-* runtime-deps directories are gone, but the gateway now loops around channel runtime / staged Telegram runtime dependency resolution.

Environment

  • OpenClaw: 2026.4.26
  • Node: v22.22.0
  • OS: Ubuntu noble
  • Install: npm global
  • Service: systemd user service
  • Gateway: loopback, port 18789
  • Config: Telegram-only

What I tried

  • Upgraded from 2026.4.25 to 2026.4.26.
  • Removed/quarantined stale plugin-runtime-deps.
  • Removed openclaw-unknown-* runtime deps.
  • Disabled memory-core, Discord, Slack, browser, ACP.
  • Removed plugins/installs.json.
  • Disabled cron jobs.
  • Stripped tools config to a bare/minimal setup.
  • Verified direct Node fetch to Telegram works:
    • getMe returns 200 in about 300ms.
    • deleteWebhook returns 200 in about 300ms.

Observed behavior

Gateway starts and reaches:

http server listening (1 plugin: telegram; ~9s)
Sometimes it reaches:

[telegram] [default] starting provider
gateway ready
But the openclaw-gateway process remains around 100% CPU.

strace evidence
With Telegram-only config and clean runtime deps, repeated reads include:

~/.npm-global/lib/node_modules/openclaw/dist/channel.runtime--9uZPcUw.js
~/.npm-global/lib/node_modules/openclaw/dist/dist-DS2D_iUu.js
~/.npm-global/lib/node_modules/openclaw/dist/runtime-schema-TpYHXgGk.js
~/.npm-global/lib/node_modules/openclaw/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/.openclaw-runtime-deps.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/node_modules/grammy/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/node_modules/undici/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/node_modules/@grammyjs/runner/package.json
~/.openclaw/plugin-runtime-deps/openclaw-2026.4.26-*/dist/extensions/telegram/package.json
Earlier samples also showed repeated reads of bundled extension manifests under:

~/.npm-global/lib/node_modules/openclaw/dist/extensions/*/openclaw.plugin.json


### Steps to reproduce

## Steps to reproduce

Install OpenClaw 2026.4.26 via npm.
   npm install -g [email protected]
   openclaw --version
Configure a Telegram-only gateway.

{
  "plugins": {
    "allow": ["telegram"],
    "entries": {
      "telegram": {
        "enabled": true,
        "config": {}
      }
    }
  }
}
Disable other surfaces/plugins such as memory-core, discord, slack, browser, and acp.

Remove stale plugin/runtime state.

systemctl --user stop openclaw-gateway.service

mv ~/.openclaw/plugins/installs.json \
  ~/.openclaw/plugins/installs.json.disabled 2>/dev/null || true

rm -rf ~/.openclaw/plugin-runtime-deps/openclaw-unknown-*
Start the gateway.

systemctl --user restart openclaw-gateway.service
sleep 15

pid=$(pgrep -f 'openclaw-gateway|openclaw.*gateway' | head -1)
ps -o pid,pcpu,pmem,etime,args -p "$pid"
Observe that the gateway reaches HTTP listening with only Telegram loaded, but CPU remains around 100%.

grep -E 'http server listening|gateway ready|starting provider|telegram|error' \
  /tmp/openclaw/openclaw-*.log
Capture repeated runtime reads with strace.

sudo timeout 6 strace -yy -f -p "$pid" \
  -e trace=openat,read,pread64,close \
  -s 180 -o /tmp/openclaw-repro.strace

sudo grep -oE '~[^"> ]+|/home/[^"> ]+|/tmp/[^"> ]+|/usr/[^"> ]+' /tmp/openclaw-repro.strace \
  | sed "s#/home/[^/]\\+#~#g" \
  | sort | uniq -c | sort -nr | head -40

### Expected behavior

Telegram-only gateway should settle to low idle CPU after startup.

### Actual behavior

100% CPU Usage after startup

### OpenClaw version

4.25 > 4.26

### Operating system

Ubuntu 24.04 noble

### Install method

npm global, systemd user service

### Model

gpt 5.5

### Provider / routing chain

OpenClaw gateway -> openai-codex OAuth profile

### Additional provider/model setup details

Telegram channel only. Gateway running as a systemd user service on loopback port 18789. Auth uses an openai-codex OAuth profile; no custom model router involved in the CPU loop repro.

### Logs, screenshots, and evidence

```shell

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

The OpenClaw gateway is experiencing high CPU usage after upgrading to version 2026.4.26, likely due to repeated reads of runtime dependencies.

Guidance

  • Verify that the plugin-runtime-deps directory is properly cleaned up and that there are no stale dependencies.
  • Check the openclaw package.json file for any dependencies that may be causing the repeated reads.
  • Investigate the grammy and undici packages, which are being repeatedly read, to see if there are any issues with their dependencies or configurations.
  • Consider disabling the telegram plugin and re-enabling it to see if the issue persists.

Example

No code snippet is provided as the issue seems to be related to dependency management and configuration.

Notes

The issue may be related to the recent upgrade to OpenClaw 2026.4.26, and it's possible that there are some compatibility issues with the telegram plugin or its dependencies. Further investigation is needed to determine the root cause of the issue.

Recommendation

Apply a workaround by disabling and re-enabling the telegram plugin to see if the issue persists, and investigate the dependencies and configurations of the grammy and undici packages.

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

Telegram-only gateway should settle to low idle CPU after startup.

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 - ✅(Solved) Fix [Bug]: 2026.4.26 Telegram-only gateway spins CPU in channel runtime / staged runtime deps [1 pull requests, 7 comments, 5 participants]