Skip to content

Cron announce step leaks ANNOUNCE_SKIP reply to user Telegram when lastChannel is Telegram #45084

@tmt-claudine-ai

Description

@tmt-claudine-ai

Bug Report

Summary

When a cron job uses delivery: announce and sends an inter-session announce step via sessions_send to a session whose lastChannel is Telegram, the agent's ANNOUNCE_SKIP reply gets delivered outbound to the user's Telegram chat instead of being suppressed.

Steps to Reproduce

  1. Set up a cron with delivery: { mode: "announce" }
  2. Have the cron deliver a result to the user via Telegram (e.g. channel: "telegram", to: "<user_id>")
  3. After delivery, the cron framework sends an inter-session announce step to the main session via sessions_send
  4. The main session replies ANNOUNCE_SKIP
  5. That reply gets routed to Telegram because the session's lastChannel is Telegram

Expected Behavior

ANNOUNCE_SKIP replies to inter-session announce step messages should be silently swallowed and never delivered to any external channel.

Actual Behavior

The ANNOUNCE_SKIP string appears as a visible message in the user's Telegram chat.

Environment

  • OpenClaw version: 2026.3.12
  • Channel: Telegram
  • Trigger: Cron with delivery: announce + channel: telegram

Notes

  • The bug appears to be in how the announce step's follow-up sessions_send ping routes the reply - it inherits lastChannel (Telegram) and delivers outbound instead of staying internal
  • ANNOUNCE_SKIP is correctly suppressed in cron delivery mode but not for inter-session sessions_send paths
  • Workaround: none found; NO_REPLY also gets delivered to Telegram

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions