[BUG] Windows desktop: 'Session not found on disk' after update — transcripts intact in per-session sandbox .claude/projects, app only checks global ~/.claude/projects (verified workaround included)

Status Open
Maintainer reply None cached
Activity 1 comment · opened Aug 6, 2026

Summary

After a desktop app update, all previously created Code-tab sessions show "Session not found on disk" even though every transcript JSONL is intact on disk. Root cause found: transcripts were written to each session's per-session sandboxed config dir, but the app now only looks in the global ~/.claude/projects/. Copying the files over fully restores all sessions — nothing was actually lost.

Related (same symptom, possibly different mechanisms): #63839, #63904, #75573.

Environment

  • Windows 11 Pro 10.0.26200 (Windows Server usage, Administrator account)
  • Claude desktop app 1.25927.0 (Code tab, local agent mode)

Repro / observed behavior

  1. Create local-agent sessions in the Code tab (ours were created late July / early Aug 2026).
  2. Update the desktop app.
  3. Click any older session in the sidebar → page shows "Session not found on disk — Send a message to start fresh in this directory" with Import CLI sessions / Archive / Delete buttons.

Root cause (verified on this machine)

Older sessions stored their transcript under a per-session config dir:

%APPDATA%\Claude\local-agent-mode-sessions\<org>\<space>\<local_SESSION_ID>\.claude\projects\<encoded-cwd>\<cliSessionId>.jsonl

(cliSessionId is recorded in <local_SESSION_ID>.json next to the session dir.)

The current app version only checks the global location:

%USERPROFILE%\.claude\projects\<encoded-cwd>\<cliSessionId>.jsonl

On this machine the global ~/.claude/projects/ contained only the one project dir created after the update; all 6 pre-update sessions (transcripts totaling ~180 MB, 98 MB largest) existed only in their per-session sandbox dirs. No migration ran on update.

Workaround (fully restores sessions)

Copy each session's encoded project dir from the sandbox into the global location (no overwrite):

cd "$APPDATA/Claude/local-agent-mode-sessions/<org>/<space>"
for s in local_*/; do
  for d in "$s".claude/projects/*/; do
    name=$(basename "$d")
    mkdir -p ~/.claude/projects/"$name"
    cp -rn "$d". ~/.claude/projects/"$name"/
  done
done

Then re-open the session (restart the app if needed). All 6 sessions restored with full history here.

Suggested fix

  • On update, migrate (or index) transcripts found in per-session sandbox .claude/projects dirs, or have the lookup fall back to the per-session path before declaring "not found".
  • The error page's Delete button is dangerous in this state: users who believe the data is gone will delete sessions whose transcripts are actually recoverable. Consider detecting the sandbox copy and offering "Restore" instead.

---

Report prepared with the help of Claude Code itself, which diagnosed and verified the workaround on the affected machine.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗