openclaw - 💡(How to fix) Fix Bug: skipWhenBusy: true does not defer heartbeat polls during active webchat sessions [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#75693Fetched 2026-05-02 05:31:36
View on GitHub
Comments
1
Participants
2
Timeline
4
Reactions
2
Timeline (top)
closed ×1commented ×1mentioned ×1subscribed ×1

Code Example

"heartbeat": {
  "every": "30m",
  "skipWhenBusy": true
}

---

22:22  用户正常发消息
22:26  心跳唤醒  ← 仅隔 4 分钟
21:47  用户正常发消息  
21:53  心跳唤醒  ← 隔 6 分钟
20:47  心跳唤醒
20:24  心跳唤醒
20:13  心跳唤醒
20:08  心跳唤醒
19:58  心跳唤醒
19:55  心跳唤醒
19:49  心跳唤醒
19:46  心跳唤醒
19:45  心跳唤醒
RAW_BUFFERClick to expand / collapse

环境

  • OpenClaw v2026.4.29
  • WSL2 Ubuntu, Node.js v24.14.0
  • 两种运行模式均复现:openclaw gateway run 和 systemd

配置

"heartbeat": {
  "every": "30m",
  "skipWhenBusy": true
}

预期行为

活跃 webchat 会话中,心跳应被 skipWhenBusy 或主队列 busy 检测自动跳过。

实际行为

心跳每 1-5 分钟触发一次,插入正在进行的 webchat 对话,打断工作流。即使配置了 skipWhenBusy: true 也无效。

复现时间线 (2026-05-01 CST)

22:22  用户正常发消息
22:26  心跳唤醒  ← 仅隔 4 分钟
21:47  用户正常发消息  
21:53  心跳唤醒  ← 隔 6 分钟
20:47  心跳唤醒
20:24  心跳唤醒
20:13  心跳唤醒
20:08  心跳唤醒
19:58  心跳唤醒
19:55  心跳唤醒
19:49  心跳唤醒
19:46  心跳唤醒
19:45  心跳唤醒

额外发现

  • 文档说"If the main queue is busy, the heartbeat is skipped"但不生效
  • skipWhenBusy: true 加上了也不生效
  • 心跳响应附带 HEARTBEAT_OK 静默丢弃机制进一步隐藏了 bug

extent analysis

TL;DR

The heartbeat mechanism is not respecting the skipWhenBusy configuration, causing interruptions in active webchat sessions, and a potential fix involves re-examining the implementation of the skipWhenBusy logic.

Guidance

  • Review the implementation of the skipWhenBusy logic to ensure it correctly checks the main queue's busy status and skips the heartbeat when necessary.
  • Verify that the heartbeat configuration is being correctly parsed and applied, as the issue persists even with skipWhenBusy: true.
  • Investigate the HEARTBEAT_OK silent discard mechanism to determine if it's contributing to the issue by masking the problem.
  • Check the documentation for any discrepancies or outdated information regarding the skipWhenBusy behavior.

Example

No code snippet can be provided without more context, but the skipWhenBusy logic should be reviewed for correct implementation.

Notes

The issue may be related to a misunderstanding or misimplementation of the skipWhenBusy feature, and further investigation is needed to determine the root cause.

Recommendation

Apply a workaround by temporarily disabling the heartbeat mechanism or reducing its frequency to mitigate the interruptions, while investigating the root cause of the issue.

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 Bug: skipWhenBusy: true does not defer heartbeat polls during active webchat sessions [1 comments, 2 participants]