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

  1. 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.
  2. 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.
  3. 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

View original on GitHub ↗