Sessions disappear mid-conversation from Recents sidebar AND claude resume — macOS
Summary
Active and recently-used sessions are vanishing from both the desktop-app Recents sidebar and the claude resume picker, despite the session JSONLs being present on disk. Symptom is mid-conversation (no relaunch), and multiple sessions in the same project are affected.
Related but distinct from #53165 (after-relaunch, Windows, sidebar frozen on one ancient session).
Environment
- macOS Darwin 25.1.0
- Claude Code desktop app: v1.5354.0
- Claude Code CLI: v2.1.123
What I observed
- Currently typing into a session in the desktop app — the session does not appear in the Recents sidebar.
- Closed the app and ran
claude resumefrom the project directory — the active session is not in that list either, and several other recent sessions from the same project are also missing. - Inspected
~/.claude/projects/<encoded-project-path>/: 5 JSONL files spanning the last 4 days are present and the current one is being actively appended to (mtime updates every few seconds). - The Recents sidebar and
claude resumeshow a stale subset — the older sessions appear, the newer ones don't.
Expected
- Recents and
claude resumereflect the JSONLs actually on disk. - The active foreground session always appears in Recents.
Actual
- Both surfaces show a stale subset that omits the currently-active session.
- Recovery requires
claude --resume <session-uuid>with the UUID looked up manually from disk — works, but not discoverable.
Severity
Medium. No data loss — JSONLs persist on disk and recovery via UUID works. The gap is discoverability: a user who closes the window without the UUID has effectively lost UI access. For me, ~30 hours of work across affected sessions.
Possible trigger (speculative — not verified)
I notice an empty directory at ~/.claude/projects/-Users-...-ifyhq--claude-worktrees-<name>/ corresponding to a git worktree that was torn down during one of the affected sessions. I have not verified that the worktree teardown is the trigger — but the timing correlates and the empty dir suggests an index/path mismatch may be involved. Happy to provide more diagnostics if useful.
Workaround
ls -lat ~/.claude/projects/<encoded-project-path>/*.jsonl
# pick the UUID by mtime
cd <project-root>
claude --resume <uuid>This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗