openclaw - 💡(How to fix) Fix [Bug]: 16 Telegram bots on Windows cause event loop starvation up to 65s — 100% ELU, 90%+ CPU, control-plane RPC >100s [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#78352Fetched 2026-05-07 03:38:00
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
3
Timeline (top)
cross-referenced ×2commented ×1

Running OpenClaw with 16 Telegram bot accounts on Windows triggers extreme event loop starvation during startup and under moderate load. The Node.js main thread is blocked for up to 65 seconds, making the gateway effectively unresponsive.

Root Cause

Running OpenClaw with 16 Telegram bot accounts on Windows triggers extreme event loop starvation during startup and under moderate load. The Node.js main thread is blocked for up to 65 seconds, making the gateway effectively unresponsive.

Code Example

liveness warning: reasons=event_loop_delay,event_loop_utilization,cpu
interval=79s
eventLoopDelayP99Ms=65229.8
eventLoopDelayMaxMs=65229.8
eventLoopUtilization=1
cpuCoreRatio=0.906
phase=channels.telegram.start-account

---

{"subsystem":"diagnostic","liveness":"warning: reasons=event_loop_delay,event_loop_utilization,cpu interval=79s eventLoopDelayP99Ms=65229.8 eventLoopDelayMaxMs=65229.8 eventLoopUtilization=1 cpuCoreRatio=0.906 phase=channels.telegram.start-account"}
{"subsystem":"gateway/ws","operation":"sessions.list","duration":"127292ms"}
{"subsystem":"gateway/ws","operation":"chat.history","duration":"127374ms"}
RAW_BUFFERClick to expand / collapse

Description

Running OpenClaw with 16 Telegram bot accounts on Windows triggers extreme event loop starvation during startup and under moderate load. The Node.js main thread is blocked for up to 65 seconds, making the gateway effectively unresponsive.

Environment

  • OS: Windows 10.0.26200 (x64)
  • Node.js: v25.9.0
  • OpenClaw: 2026.5.x
  • Telegram bots: 16 concurrent bot accounts
  • Model: alibialian/qwen3.6-plus

Observed Metrics

Event Loop

MetricValueExpected
eventLoopDelayP99Ms65,229 ms<500 ms
eventLoopDelayMaxMs65,229 ms<5,000 ms
eventLoopUtilization1.0 (sustained)<0.5
cpuCoreRatio0.964<0.7

Control-Plane RPC Latency

OperationDuration
sessions.list127,292 ms (>2 min)
node.list117,324 ms
chat.history127,374 ms
models.list32,605 ms
chat.send12,424 ms

Liveness Warnings

liveness warning: reasons=event_loop_delay,event_loop_utilization,cpu
interval=79s
eventLoopDelayP99Ms=65229.8
eventLoopDelayMaxMs=65229.8
eventLoopUtilization=1
cpuCoreRatio=0.906
phase=channels.telegram.start-account

Impact

  1. All 16 Telegram bots timeout on getMe during startup (10s timeout, actual 41-82s elapsed)
  2. WebChat disconnects with code 1001 (gateway too busy to heartbeat)
  3. Queued work piles up — multiple dashboard agents stuck in processing state
  4. Embedded runs failembedded run failover: decision=surface_error
  5. User-facing: messages delayed or lost for 1-2+ minutes

Related Issues

  • #74325 — gateway restart blocks main thread ~75s
  • #75378 — event loop saturation during parallel subagent spawn
  • #76562 — high CPU, extreme control-plane RPC latency after upgrade
  • #74345 — event-loop saturation on 2026.4.27
  • #73874 — Windows + Docker Desktop deadlock

This issue is specifically about the multi-Telegram-bot (16 accounts) scenario amplifying the problem. The startup phase channels.telegram.start-account appears to serialize bot initialization, saturating the event loop for all 16 accounts simultaneously.

Log Excerpts

{"subsystem":"diagnostic","liveness":"warning: reasons=event_loop_delay,event_loop_utilization,cpu interval=79s eventLoopDelayP99Ms=65229.8 eventLoopDelayMaxMs=65229.8 eventLoopUtilization=1 cpuCoreRatio=0.906 phase=channels.telegram.start-account"}
{"subsystem":"gateway/ws","operation":"sessions.list","duration":"127292ms"}
{"subsystem":"gateway/ws","operation":"chat.history","duration":"127374ms"}

Suggested Fix Direction

  1. Parallelize Telegram bot startup instead of serial getMe calls
  2. Add backpressure — stagger channel initialization with configurable delays
  3. Offload channel start-account work to worker threads
  4. Increase diagnostic interval during startup phase to avoid false positives

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