[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 --version on 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

  1. Run claude agents to open the agents UI.
  2. Open a session and send a message containing a pasted multi-line input block (in my case a multi-line SQL statement).
  3. Stop/interrupt the agent before it produces any output.
  4. Open the model switcher and type Opu (to switch to Opus).
  5. 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 model change 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 agents process and relaunching it (~06:11Z); the daemon's --spawned-by still 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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗