-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
Telegram message-tool-only turns can still emit empty-response fallback via skipped delivery lane #90091
Copy link
Copy link
Open
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Summary
This is a follow-up to #90076, which was closed as already solved in
main.The original issue is not fully solved. Current
mainand v2026.6.1 already suppress one silent fallback path formessage_tool_onlyturns, but the live failure came through the separate empty-response/failure fallback branch:That branch still ignores
sourceReplyDeliveryMode === "message_tool_only", so a Telegram group turn can successfully send the visible reply throughmessage(action="send"), finish with exactNO_REPLY, and still get a later generic fallback:Environment
OpenClaw 2026.6.1 (2e08f0f)origin/mainchecked before filing:179ff9b4230c003c1e08cc356fac93fc7c849c6dLive Evidence
From a real Telegram group session:
message(action="send").NO_REPLY.2026-06-04T00:07:02.309Z: provideropenclaw, modeldelivery-mirror, textNo response generated. Please try again.2026-06-04T00:07:32.129Z: provideropenclaw, modeldelivery-mirror, textNo response generated. Please try again.2026-06-04T00:07:43.903Zbecause the turn looked broken.Local private evidence paths available to the reporter:
/root/.openclaw/agents/main/sessions/f61684d0-37d3-4d7d-be9d-56f8fbb12098.jsonl.reset.2026-06-04T00-07-43.733Z/root/.openclaw/logs/commands.logThose paths are intentionally included as reporter-local breadcrumbs, not public repro requirements.
Why #90076 Closure Was Incomplete
The closure comment on #90076 correctly identified this existing guard:
However, current
mainstill computes the failure/empty-response fallback without that guard:So the already-implemented suppression covers the silent fallback branch, but not the branch that actually produced the live
No response generated. Please try again.messages.Expected
For a Telegram group turn where source delivery is
message_tool_only:message(action="send")visible reply should satisfy the user-visible response requirement.NO_REPLYfinal text should remain silent.Actual
Telegram can still emit
No response generated. Please try again.after a successful message-tool visible reply plusNO_REPLYfinal when the automatic Telegram delivery lane records a non-silent skipped/failed final payload.Suggested Fix
Apply the existing message-tool-only suppression guard to the failure/empty-response fallback branch too. Conceptually:
There was a previous PR with this shape, #90080, but it was closed while sorting out whether #90076 was already fixed. The useful part of that PR was the source-level regression for a
message_tool_onlyturn where final text is skipped/silent and the automatic final text is skipped non-silent; before the guard that shape is eligible for the empty-response fallback.Impact
The user sees a successful reply followed by one or more generic failure messages, which makes the Telegram session appear wedged and can prompt unnecessary
/reset, losing continuity.