[BUG] Desktop App 2.1.144+: startup scanner deletes cliSessionId from claude-code-sessions local files on every launch — session not found on disk

Resolved 💬 6 comments Opened May 28, 2026 by John-D-B Closed Jul 2, 2026

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?

Title:
Desktop App 2.1.144+ — session persistence broken across all restarts; sidebar tiles show "Session not found on disk"

Versions affected:
Desktop App 2.1.144 (macOS); first noticed after the late-May 2026 update.

Symptom:
Every previously-working sidebar session tile, AND every session created during the current launch, shows "Session not found on disk" when clicked after the App is quit and relaunched. Underlying conversation jsonl files in ~/Library/Application Support/Claude/projects/ are intact (claude --resume <uuid> works via CLI).

Root cause (confirmed):
The startup scanner deletes the cliSessionId field from each claude-code-sessions/.../local_<uuid>.json and inserts transcriptUnavailable: true. No other persisted store holds the sidebar→jsonl link, so the App has nowhere to recover it from. We grep'd Local Storage and IndexedDB LevelDB stores for jsonl UUIDs and found none.

Reproduction (100%):

Create a new session in Desktop App (any project).
Have a couple of conversation turns.
Quit the App.
Relaunch.
Click the just-created sidebar tile → "Session not found on disk."

User-side workaround:
Manually re-set cliSessionId and DELETE the transcriptUnavailable key in the local file, then launch App and click the tile once. Conversation loads; entry usually persists across launches but the scanner's trust heuristic is not fully deterministic — entries can be re-nullified on a later launch with no user intervention, requiring the workaround to be re-applied.
Auto-recovery script:
https://github.com/John-D-B/Claudes/blob/main/2026-05-27.Claude-Amnesia/Bin/fix-amnesia.py

Impact:
Multi-session workflows in Desktop App are broken — every restart can wipe session continuity for an unpredictable subset of tiles. The only fully-intact path is CLI resume.

What Should Happen?

Sessions should persist across App quit/relaunch. Conversation jsonl files are intact on disk; the App should resume them.

Error Messages/Logs

{
  "sessionId": "local_a1b2c3d4-...",
  "title": "EJBCA-ce TwoSter",
  "cwd": "/Users/jdb/work.Claude/2026-05-19.EJBCA-ce",
  "createdAt": 1748939630700,
  "transcriptUnavailable": true
}

Steps to Reproduce

Reproduction (100%):

Create a new session in Desktop App (any project).
Have a couple of conversation turns.
Quit the App.
Relaunch.
Click the just-created sidebar tile → "Session not found on disk."

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

Prior to 2.1.144

Claude Code Version

2.1.145 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Related: #53717 (data-loss variant), #61608.

Full diagnosis, root cause, and auto-recovery script: https://github.com/John-D-B/Claudes/tree/main/2026-05-27.Claude-Amnesia

<img width="1603" height="1335" alt="Image" src="https://github.com/user-attachments/assets/440a2433-b5e0-4351-af48-69374cd77d69" />

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗