[BUG] Reinstalling Claude Desktop on Windows wipes Code tab session history (no warning, no recovery)

Status Open
Reported on v2.1.112
Maintainer reply None cached
Activity 4 comments · opened Jul 17, 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?

After reinstalling the Claude desktop app on Windows, all Code tab session history (transcripts and the Recents list) was gone. Regular Chat history and Projects survived (Chat is account-synced), but Code sessions — which are stored locally rather than synced to my account — were wiped by the reinstall with no warning that this data would be lost.

Environment

OS: Windows 11, Version 25H2 (OS Build 26200.8875)
App: Claude desktop app 1.22209.0 (build 77c938, 2026-07-16), Code engine version 2.1.112
Trigger: full uninstall/reinstall of the desktop app

What happened

Before reinstalling, I had an active history of Code tab sessions/conversations.
After reinstalling and signing back into the same account, the Code tab's Recents/session list was empty. No prior transcripts were recoverable from within the app.
Chat history and Projects were unaffected (once a separate temporary sync issue with Projects cleared up), confirming the difference in how Code session data is persisted versus account-synced Chat data.

Related issue

This looks like the same underlying problem reported in #41591 ("Auto-update deletes session .jsonl files, wiping token usage history and conversation data"), which documented 520/520 sessions deleted and was closed as "Not planned" despite being labeled bug, data-loss, and has repro. That issue was triggered by an auto-update; this report is a different trigger (a full reinstall) causing the same class of loss — local Code session data being destroyed with no user-facing warning or recovery path.

Given multiple independent reports of the same failure mode (auto-update in #41591, reinstall here), I'd ask that this be reconsidered rather than closed as not planned — the underlying gap (local-only, unbacked-up session storage with no delete warning) is a repeat cause of real data loss for users.

What Should Happen?

Reinstalling the app should not silently delete local session data, especially with no confirmation prompt or warning that Code history isn't backed up.
At minimum, users should be warned before uninstalling that this data is local-only and will be lost.
Ideally, Code session transcripts (~/.claude/projects/**/*.jsonl) would be backed up or migrated across a reinstall, the same way Chat history already is.

Error Messages/Logs

Steps to Reproduce

Steps to reproduce

Install the Claude desktop app on Windows and sign in.
Open the Code tab and run one or more sessions in a project directory until they're saved to history (visible in the Recents/session list).
Confirm the sessions are listed and resumable — e.g. via the session picker (Ctrl+A to view all projects) or by checking that %USERPROFILE%\.claude\projects\<project-name>\ contains .jsonl transcript files.
Uninstall the Claude desktop app (e.g. via Windows Settings → Apps, or Add/Remove Programs). (Note the exact uninstall method you used — standard uninstaller vs. a forced/manual removal — since that may affect whether app data directories get cleared.)
Reinstall the Claude desktop app from claude.com/download and sign back into the same account.
Open the Code tab and check the Recents/session list.

Actual result: Code tab session history (Recents list and transcripts) is empty — the sessions from step 2 are gone, and the app cannot resume them.

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.112

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

_No response_

View original on GitHub ↗

4 Comments

BasedGPT · 1 month ago

Worth checking one directory before you write these off: the reinstall almost certainly cleared %APPDATA%\Claude\claude-code-sessions\ (the metadata that renders the Recents list), but Code session transcripts live separately under ~\.claude\projects\<project-slug>\, and a Desktop reinstall usually doesn't touch that path. If the .jsonl files are still there, the sessions aren't lost; Desktop just has no metadata left to list them from.

That's the "sessions missing from session list" case, and it's recoverable. I built BasedGPT/claude-code-session-recovery for it: synth_session_metadata.py reads your surviving transcript files and synthesises fresh metadata so the sessions reappear in the list, titles and all. Run diagnose.py from the same toolkit first, since it maps %APPDATA%\Claude\claude-code-sessions\ against ~\.claude\projects\ and shows exactly which transcripts exist with no matching metadata, so you can confirm what's recoverable before synthesising.

If ~\.claude\projects\ was emptied by the reinstall as well, then it's genuine on-disk loss, and the check to run is cloud sync or file-versioning on your home directory, which is where those transcripts sat.

Hope this helps, if my tools are able to help you, would appreciate a ⭐ :)

corywheeler · 1 month ago
Worth checking one directory before you write these off: the reinstall almost certainly cleared %APPDATA%\Claude\claude-code-sessions\ (the metadata that renders the Recents list), but Code session transcripts live separately under ~\.claude\projects\<project-slug>\, and a Desktop reinstall usually doesn't touch that path. If the .jsonl files are still there, the sessions aren't lost; Desktop just has no metadata left to list them from. That's the "sessions missing from session list" case, and it's recoverable. I built BasedGPT/claude-code-session-recovery for it: synth_session_metadata.py reads your surviving transcript files and synthesises fresh metadata so the sessions reappear in the list, titles and all. Run diagnose.py from the same toolkit first, since it maps %APPDATA%\Claude\claude-code-sessions\ against ~\.claude\projects\ and shows exactly which transcripts exist with no matching metadata, so you can confirm what's recoverable before synthesising. If ~\.claude\projects\ was emptied by the reinstall as well, then it's genuine on-disk loss, and the check to run is cloud sync or file-versioning on your home directory, which is where those transcripts sat. Hope this helps, if my tools are able to help you, would appreciate a ⭐ :)

Thank you so much for the reach out... I'm not finding the things on disk so it's looking more like this is a total loss for me.

BasedGPT · 1 month ago

No worries. I'd hold off on calling it a total loss until you've tried one avenue that sits outside the two directories I pointed at: Windows shadow copies. Right-click %USERPROFILE%\.claude in File Explorer, choose Restore previous versions, and see whether System Protection captured a snapshot from before the reinstall. It's enabled on some machines and not on others, so it's a gamble, but when a snapshot is there it brings back the whole projects tree at once rather than file by file.

If one does turn up, run diagnose.py from BasedGPT/claude-code-session-recovery against the restored tree before you rely on it. It maps the metadata directory against ~\.claude\projects\ and shows which transcript files actually have something pointing at them, so you'll know what genuinely came back.

Worth keeping your reinstall trigger on record as distinct from the auto-update one in #41591. Two separate triggers landing on the same local-only storage gap is harder to wave off than either report on its own.

BasedGPT · 1 month ago

One correction to my previous reply: I pointed you at File Explorer's manual Previous Versions check, but the toolkit already has an automated VSS scanner that is more thorough.

From an elevated PowerShell, run py -3 tools/sessions/restore_from_vss.py inside BasedGPT/claude-code-session-recovery. The default is a dry run: it checks every accessible shadow copy and selects the largest version of each missing transcript. Review that result, then add --apply only if the candidates are right.

Before applying a restore, set "cleanupPeriodDays": 36500 in ~\.claude\settings.json. Restored files retain their old modification times, and the normal cleanup can otherwise delete an older recovered transcript again on the next launch. You can return the setting to your preferred value after the sessions are recovered.

Hope this helps, if my tools are able to help you, would appreciate a ⭐ :)