openclaw - 💡(How to fix) Fix Bug: Heartbeat system events render as user messages in webchat; HEARTBEAT_OK not silently suppressed [4 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#71381Fetched 2026-04-26 05:13:24
View on GitHub
Comments
4
Participants
2
Timeline
5
Reactions
0
Timeline (top)
commented ×4closed ×1

In the webchat / Control UI, heartbeat system events are rendering as messages in the user's message bubble instead of being processed silently by the agent. Additionally, the agent's HEARTBEAT_OK response (which per docs should be silently dropped) is also rendering visibly in the chat thread.

Root Cause

In the webchat / Control UI, heartbeat system events are rendering as messages in the user's message bubble instead of being processed silently by the agent. Additionally, the agent's HEARTBEAT_OK response (which per docs should be silently dropped) is also rendering visibly in the chat thread.

Fix Action

Fix / Workaround

This behavior is consistent with a previous issue where async agent completion system events were also bleeding into the visible chat thread. That issue had a behavioral workaround applied on the agent side, but the heartbeat rendering appears to be a UI-layer issue that requires a fix in the webchat renderer or the heartbeat delivery pipeline.

RAW_BUFFERClick to expand / collapse

Description

In the webchat / Control UI, heartbeat system events are rendering as messages in the user's message bubble instead of being processed silently by the agent. Additionally, the agent's HEARTBEAT_OK response (which per docs should be silently dropped) is also rendering visibly in the chat thread.

Expected Behavior

Per the OpenClaw docs and heartbeat design:

  • The heartbeat prompt should be an invisible system event — never visible to the user
  • When the agent replies HEARTBEAT_OK (nothing to report), that response should be silently suppressed and never shown in the chat UI

Actual Behavior

  • The heartbeat prompt appears in the user's message bubble as if the user typed it
  • The agent's HEARTBEAT_OK reply appears as a visible assistant message in the chat thread
  • This results in repeated clutter every ~30 minutes in the webchat UI

Steps to Reproduce

  1. Have a non-empty HEARTBEAT.md in the workspace
  2. Wait for a heartbeat to fire
  3. Observe the webchat — the heartbeat prompt appears in the user bubble and HEARTBEAT_OK appears as an assistant message

Environment

  • Channel: webchat (Control UI)
  • Platform: macOS (Darwin 25.3.0, arm64)
  • OpenClaw: installed via npm (homebrew node)

Additional Context

This behavior is consistent with a previous issue where async agent completion system events were also bleeding into the visible chat thread. That issue had a behavioral workaround applied on the agent side, but the heartbeat rendering appears to be a UI-layer issue that requires a fix in the webchat renderer or the heartbeat delivery pipeline.

extent analysis

TL;DR

The heartbeat system events and HEARTBEAT_OK responses are likely being incorrectly rendered in the webchat UI due to a misconfiguration or bug in the webchat renderer or heartbeat delivery pipeline.

Guidance

  • Review the webchat renderer code to ensure it correctly handles system events and silently drops HEARTBEAT_OK responses as per the OpenClaw docs.
  • Verify that the heartbeat delivery pipeline is properly configured to mark heartbeat prompts and HEARTBEAT_OK responses as invisible system events.
  • Check for any recent changes to the webchat renderer or heartbeat delivery pipeline that may have introduced this issue.
  • Consider applying a temporary workaround on the agent side to suppress HEARTBEAT_OK responses until a permanent fix is implemented.

Example

No code snippet is provided as the issue lacks specific technical details about the webchat renderer or heartbeat delivery pipeline implementation.

Notes

The root cause of the issue is uncertain and may require further investigation into the webchat renderer or heartbeat delivery pipeline. The previous issue with async agent completion system events suggests a potential pattern of system events being incorrectly rendered in the webchat UI.

Recommendation

Apply a workaround to suppress HEARTBEAT_OK responses on the agent side until a permanent fix is implemented in the webchat renderer or heartbeat delivery pipeline. This will help mitigate the clutter in the webchat UI while a more permanent solution is developed.

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: Heartbeat system events render as user messages in webchat; HEARTBEAT_OK not silently suppressed [4 comments, 2 participants]