-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Bug]: stale chat abort marker can suppress fresh chat events #91012
Copy link
Copy link
Closed
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
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
A retained chat abort marker for a reused chat run/idempotency key can suppress fresh chat delta/final events even when the new run was registered after the old abort marker.
Steps to reproduce
main, seedchatRunState.abortedRunswith an abort marker for a chat client run id.Expected behavior
A stale abort marker from an older run should not suppress chat events for a fresh run registered after that marker. A current abort marker for the active run should still suppress live chat projection.
Actual behavior
The stale marker suppresses the fresh run's chat projection, so no
deltaorfinalchat state is emitted for the fresh run.OpenClaw version
upstream/mainatcaae4c91092dabc89d64001ad7aaf90ad019097a.Operating system
Linux local checkout.
Install method
Local checkout using the repository test/runtime commands.
Model
N/A --- this repro exercises Gateway chat event projection state before any model/provider call is involved.
Provider / routing chain
N/A --- provider routing is not involved in the repro.
Additional provider/model setup details
N/A --- no provider/model call is required to reproduce this state bug.
Logs, screenshots, and evidence
Current-main RED proof added a regression covering the stale marker case and failed with no chat states emitted:
The failing condition is the stale-marker presence check: the fresh run expected
deltaandfinal, but the old marker caused both to be suppressed.Impact and severity
Affected: Gateway chat clients when a chat abort marker is retained longer than normal chat send dedupe and a fresh run reuses the same client run/idempotency key.
Severity: Medium. The active run can complete, but clients miss the fresh chat delta/final projection and can appear stuck or silent.
Frequency: Edge case, bounded by abort-marker retention and id/key reuse.
Consequence: Fresh successful chat output can be hidden from chat subscribers until another refresh/path recovers state.
Additional information
The abort marker TTL is longer than normal chat send dedupe. This makes stale marker retention possible after the original dedupe entry has expired. The fix should preserve current abort suppression while distinguishing markers older than the fresh chat run registration.