[BUG] agents UI: session hangs (cannot quit or do anything) after stopping agent pre-output, then opening the model switcher
Status Fixed / completed
Reported on v2.1.207
Maintainer reply None cached
Activity 1 comment · opened Jul 16, 2026 · closed Aug 17, 2026
Environment
- Claude Code: 2.1.207 (agents UI / pty hosts run
~/.local/share/claude/versions/2.1.207;claude --versionon PATH reports 2.1.202) - OS: macOS (Darwin 27.0.0), Apple Silicon
- Shell: zsh
- UI:
claude agents(agents/FleetView UI in the terminal)
Steps to reproduce
- Run
claude agentsto open the agents UI. - Open a session and send a message containing a pasted multi-line input block (in my case a multi-line SQL statement).
- Stop/interrupt the agent before it produces any output.
- Open the model switcher and type
Opu(to switch to Opus). - The session hangs: the UI is unresponsive — cannot quit the session, cannot type, cannot do anything.
What happened (evidence from the session transcript)
Session 6c8c3fe1-f0f0-4fc7-a4b1-c8ae7fda7731 (2026-07-16, times UTC; local = UTC+8):
06:06:48Z— user message (with pasted multi-line block) recorded in the transcript.06:06:54Z— the same user message is recorded a second time, with no assistant output between the two entries — consistent with the stop re-queuing the just-sent prompt.- No
modelchange event was ever recorded — the model-switcher action never took effect. 06:06:54Z → 06:13:57Z— ~7-minute gap with zero transcript events. This is the hang window; the UI accepted no input, and quitting the session was impossible.- Recovery required force-quitting the whole
claude agentsprocess and relaunching it (~06:11Z); the daemon's--spawned-bystill referenced the dead UI pid. 06:13:57Z— after relaunch, resuming the session injected a synthetic "Continue from where you left off." message; the turn then ran and completed normally (06:16:57Z) on the original model (the requested switch to Opus was lost).
Expected behavior
- Stopping a turn and then opening the model switcher should never wedge the session.
- Quit/exit should always remain responsive, even if internal state is inconsistent.
- The interrupted prompt should not be duplicated in the transcript.
Impact
Whole agents-UI session becomes unusable; the only recovery is killing the claude agents process and resuming the session after relaunch.
Related (not duplicates)
- #50665 — stop button unresponsive / UI stuck in "working" state (different surface, no model-switcher involvement)
- #3455 — Esc/Ctrl+C interrupt not stopping execution
This report is specifically: interrupt-before-first-output followed by model-switcher input in claude agents deadlocks the session UI.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗