Session crashes on prompt enqueue and permanently disappears from session list (transcript JSONL intact on disk)
Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 0 comments · opened Aug 6, 2026
Environment
- Claude Code version: 2.1.220 (desktop app session)
- Platform: macOS (Darwin 25.3.0), Apple Silicon
- Session cwd: a git worktree under
<repo>/.claude/worktrees/<name>(worktree was deleted by tooling around the same time; possibly related)
What happened
A long-running session (~2 days, ~2300 transcript lines, several background Bash tasks polling a merge queue) crashed at the exact moment a new user prompt was enqueued, and afterward the session no longer appears in the session list at all — not in active sessions and not in archived sessions.
The transcript JSONL on disk is fully intact. Its tail shows the failure sequence:
{"type":"queue-operation","operation":"enqueue","timestamp":"2026-08-06T12:29:48.904Z","sessionId":"88e0ba45-...","content":"go ahead and restart the lane after it lands"}
{"type":"queue-operation","operation":"dequeue","timestamp":"2026-08-06T12:29:48.972Z","sessionId":"88e0ba45-..."}
{"type":"queue-operation","operation":"enqueue","timestamp":"2026-08-06T12:29:49.603Z","content":"<task-notification>...<status>killed</status><summary>Background command \"Wait for model load to complete or fail\" was stopped</summary>..."}
{"type":"queue-operation","operation":"enqueue","timestamp":"2026-08-06T12:29:49.603Z","content":"<task-notification>...<status>killed</status><summary>Background command \"Poll merge queue to terminal state and verify ancestry\" was stopped</summary>..."}
i.e. the prompt was enqueued, dequeued 68ms later, both running background tasks were killed ~600ms after that, and the transcript ends. No assistant turn was ever produced for the dequeued prompt.
Impact
- The queued instruction was silently dropped — the session was mid-deploy (waiting on a merge-queue land to then restart a service), so the second half of the operation never ran and nothing surfaced the failure.
- The session vanished from the session list (including archived), so from the UI the multi-day conversation looks deleted. The user assumed data loss. Recovery required manually grepping
~/.claude/projects/**/*.jsonl. - Separately, worktree-homed sessions index under a different project-directory slug (
...--claude-worktrees-<name>) than the repo itself, which makes lost-session recovery harder to discover.
Expected
- A crash during prompt dequeue should not orphan the session: on next app start the session should still be listed (transcript exists and is readable — resuming it works fine when invoked by UUID).
- Ideally the dequeued-but-unanswered prompt would be re-queued on recovery, or at minimum visibly surfaced as undelivered.
Notes
- The other concurrent sessions in the same repo survived the same moment fine.
- Happy to provide the full (private) transcript tail or timestamps to correlate with any server/client logs.
🤖 Generated with Claude Code