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)

  1. 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).
  2. 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."
  3. 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.
  4. 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-yield that 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

  1. Visible queue indicator in transcript: 📨 Queued (delivers at next yield). Resolves "did they get my message?".
  2. Double Ctrl-C as halt-at-next-yield: single Ctrl-C cancels current tool; double Ctrl-C signals "stop after current yield."
  3. Conditional-pause syntax: messages like [pause-after: convergence loop] or a /pause slash 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.

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗