User messages sent during agent execution can be silently lost or queued without UI indicator, causing work to proceed past intended halt points
Resolved 💬 5 comments Opened May 7, 2026 by obrienatimothy-sketch Closed May 11, 2026
Summary
User messages sent while Claude is mid-execution can fail to reach the model, causing the model to continue work past where the user intended to halt it. There's no UI indicator that a message was sent-but-not-delivered, and no mechanism for "soft interrupts" that would let a user say "pause after the next yield to user."
Reproduction (real session today)
- User sent message: "do one convergence loop on this bug and the fix" — Claude started a multi-step execution (research subagents → /the-fool → /common-ground → fix application → multi-file doc work → CHANGELOG entry).
- While Claude was mid-execution (specifically before the convergence loop began), user sent: "after the completed loop - pause as I'm going to bed. Complete the full loop - then pause - don't do anything else."
- Claude never received this second message during execution. Claude proceeded through the convergence loop AND four additional Phase E doc tasks past the user's intended halt point.
- Only when Claude yielded back to user with a summary asking for commit approval did the queued user message finally surface.
Expected behavior
Either:
- (a) Delivery-layer fix: Messages sent during execution should surface in the UI as "queued, will deliver at next yield" so the user knows their message is pending. Currently there's no signal — the user assumed Claude had read it and was ignoring them.
- (b) Soft-interrupt feature: Allow conditional pause messages like
/pause-after-next-yieldthat the agent loop honors at structurally well-defined points (post-AskUserQuestion, post-summary-then-await-approval, post-tool-failure-surfacing).
Impact
- Wasted compute (extra work done past intended halt point)
- Wasted user trust (model appeared to ignore user direction)
- Potential unintended side effects when work involves destructive elements (file writes, git commits, deletions)
- Real-world workflow impact: long-running agent sessions are common; ability to mid-flight redirect is essential UX
Suggested implementations
- Visible queue indicator in transcript:
📨 Queued (delivers at next yield). Resolves "did they get my message?". - Double Ctrl-C as halt-at-next-yield: single Ctrl-C cancels current tool; double Ctrl-C signals "stop after current yield."
- Conditional-pause syntax: messages like
[pause-after: convergence loop]or a/pauseslash command honored at well-defined points.
Notes
This is a UX-design issue more than a correctness bug — the model behaved correctly given what it received. But for long-running agentic sessions where users routinely walk away from the keyboard, the inability to send a queued-but-confirmable interrupt is a real friction point.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗