[BUG] iPadOS: session stuck in "turn in flight" after queueing messages — queue undismissable, later responses never render
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
On iPadOS, queueing several messages while a response is still generating leaves
the conversation permanently stuck in a "turn in flight" state. It does not
recover on relaunch.
All of the following are present at once:
- Four queued message chips sit below an assistant response that already
answered them. They were delivered and answered server-side, but the client
still renders them as unsent.
- The ✕ on each chip is inert — no tap feedback, no dismissal.
- The composer placeholder is stuck on "Queue for after this turn…" and the
send button is stuck as a stop (■) square.
- A loading spinner runs continuously in the bottom-right corner.
- The most recent turn shows "7s · thinking…" indefinitely. The assistant did
produce a full response — it exists server-side — it was simply never
rendered in the client.
So the client and server disagree about what has already happened in the
conversation, and the client is behind.
Force-quitting and relaunching does not clear it, so this is not purely
in-memory client state.
<img width="1032" height="1376" alt="Image" src="https://github.com/user-attachments/assets/381bde53-e4a5-4923-adef-ea33f1042e26" />
<img width="1032" height="1376" alt="Image" src="https://github.com/user-attachments/assets/3538d744-31a3-4a83-bd3e-23fa74cd143f" />
What Should Happen?
Expected: when the turn completes, queued messages either send — rendering as
sent user messages above the reply — or stay dismissable via ✕. The composer
returns to normal, send returns to send, the spinner stops.
Actual: the queue never reconciles, ✕ does nothing, the session permanently
believes a turn is in flight, and subsequent assistant responses are generated
but never rendered. The conversation becomes unusable.
Error Messages/Logs
Steps to Reproduce
- Open an existing Claude Code session on iPadOS.
- While a long response is streaming, send 3–4 short messages in quick
succession so they queue.
- Wait for the response to finish.
- Observe: chips remain, ✕ inert, composer stays in queue mode, send stays a
stop button, spinner never stops.
- Force-quit and reopen. The state persists.
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
mobile app, not the CLI
Platform
Other
Operating System
Other
Terminal/Shell
Other
Additional Information
- Claude app on iPadOS
- Claude Code (web) session, model Opus 5
- claude --version: N/A — mobile app, not the CLI
- Occurred 2026-09-09, ~23:13–23:21