Skip to content

HEARTBEAT_OK leaks into user-visible replies when cron announcements queue during active conversation #32013

@dimitryvin

Description

@dimitryvin

Description

When cron job announcements with HEARTBEAT_OK results are delivered to the main agent session while the agent is actively replying to the user, the HEARTBEAT_OK token leaks into user-visible messages instead of being silently suppressed.

Steps to Reproduce

  1. Have multiple cron jobs running with announce delivery (e.g. meeting-reminder every 5 minutes)
  2. When those jobs return HEARTBEAT_OK (nothing to report), the system queues them as announce messages to the main session
  3. If the agent is mid-reply to the user, the HEARTBEAT_OK gets appended to the actual user-facing response
  4. User sees HEARTBEAT_OK at the end of otherwise normal messages

Expected Behavior

Cron announce results that are HEARTBEAT_OK should be silently discarded before reaching the agent session. The agent should never need to handle or suppress these — they should be filtered at the delivery layer.

Actual Behavior

HEARTBEAT_OK tokens from cron announce deliveries leak into user-visible replies, appearing appended to normal assistant messages on Telegram (and likely other surfaces).

Environment

  • OpenClaw version: 2026.3.1
  • Channel: Telegram (direct chat)
  • Cron jobs: meeting-reminder (every 5 min), tennis-live (every 30 min), etc.
  • Multiple cron jobs returning HEARTBEAT_OK queued as announce messages

Additional Context

The NO_REPLY stripping fix in 2026.3.1 (Auto-reply/NO_REPLY: strip NO_REPLY token from mixed-content messages) addresses a similar class of issue for NO_REPLY, but HEARTBEAT_OK from cron announce paths is not similarly handled.

A potential fix would be to filter HEARTBEAT_OK results at the cron delivery layer before they reach the agent session, similar to how the system already handles delivery.mode: "none" jobs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions