-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
message-tool send mid-turn writes 'delivery-mirror' side-branch into transcript → permanent HTTP 400 loop, session silently dead #100360
Copy link
Copy link
Open
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.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.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.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: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Description
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.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.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.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: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Type
Fields
Priority
None yet
Summary
When an agent sends media (image + caption) via the
messagetool mid-turn, the runtime records a mirrored assistant message (provider: "openclaw",model: "delivery-mirror") into the session transcript as a side-branch (leafrecord,appendMode: "side") attached between an assistanttool_useturn and itstoolResultentries. On every subsequent turn, the compiled Anthropic request is rejected with HTTP 400 (invalid request, ~0.5s, zero tokens). The session never recovers: every turn endsnon_deliverable_terminal_turn, the user-facing channel receives nothing, and there is no operator alert./statusstill works, so the bot appears healthy while being permanently mute.Environment
Reproduction (observed, 2x in one week)
messagetool with an image attachment + caption targeting the same group, mid-turn (before its final reply).{role:"assistant", content:[{type:"text", text:"<media filename>"}], provider:"openclaw", model:"delivery-mirror"}→{type:"leaf", targetId:<assistant msg id>, appendParentId:<mirror id>, appendMode:"side"}→ the toolResult entries.lastCallUsageall zeros, transcript records assistant placeholder[assistant turn failed before producing content], turn endsnon_deliverable_terminal_turn.Update — second occurrence, text-only trigger
Three minutes after the first repaired session came back online, the agent re-poisoned it with a plain text
messagesend issued in parallel with other tool calls (edit + sessions_spawn + message in one assistant turn). The mirror entry landed between the tool_use block and its tool_result entries again. So the trigger is not media-specific: it is the delivery mirror being appended as a side-branch while sibling tool calls from the same assistant message are still pending.Impact
Two production group sessions killed in one week; one stayed silently dead for 4 days. Humans in the group assume the agent is ignoring them.
Expected
Evidence available
Sanitized transcript excerpts (entry ids, parent links, leaf record) and gateway log excerpts showing the 400 streak — happy to attach.