claude-code - 💡(How to fix) Fix [BUG] Desktop App 2.1.111 upgrade: Code session index wiped (recoverable via workaround); Cowork history disappeared (cause unclear)

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

After updating to 2.1.111, both Code and Cowork sidebars were empty. Investigation revealed two separate issues, with very different recoverability profiles.


Error Message

Error Messages/Logs

Root Cause

After updating to 2.1.111, both Code and Cowork sidebars were empty. Investigation revealed two separate issues, with very different recoverability profiles.


Fix Action

Fix / Workaround

  • Desktop App version: 2.1.111
  • OS: Windows 11 (MSIX package: Claude_pzs8sxrjxfjjc, install location C:\Program Files\WindowsApps\Claude_1.3561.0.0_x64__pzs8sxrjxfjjc)
  • Data root: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\
  • Related: #51349 (launch failure on prior version, fixed by this 2.1.111 update — which then caused the data-loss reported here)

Workaround: regenerated wrappers from JSONLs with a small Python script (extracting sessionId, cwd, aiTitle, timestamps, worktree metadata). After restart, all 169 sessions reappeared in sidebar and are fully navigable.

Cowork conversations visible pre-upgrade in the sidebar (Test implementation, Dispatch background conversation, etc.) were stored in:

Code Example

<DataRoot>\claude-code-sessions\<userId>\<profileId>\local_<uuid>.json

---

<DataRoot>\IndexedDB\https_claude.ai_0.indexeddb.leveldb
<DataRoot>\IndexedDB\https_claude.ai_0.indexeddb.blob

---

<DataRoot>\claude-code-sessions\<userId>\<profileId>\local_<uuid>.json

---
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Environment

  • Desktop App version: 2.1.111
  • OS: Windows 11 (MSIX package: Claude_pzs8sxrjxfjjc, install location C:\Program Files\WindowsApps\Claude_1.3561.0.0_x64__pzs8sxrjxfjjc)
  • Data root: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\
  • Related: #51349 (launch failure on prior version, fixed by this 2.1.111 update — which then caused the data-loss reported here)

Summary

After upgrading to 2.1.111, the sidebar became empty in both Code and Cowork tabs. Investigation uncovered two distinct problems with different severity.


Problem 1 — Code: sidebar empty despite all session data intact (recoverable)

CLI session JSONLs in %USERPROFILE%\.claude\projects\*\*.jsonl were untouched — 171 sessions across 7 projects (~830 MB).

However, the sidebar reads a separate wrapper index:

<DataRoot>\claude-code-sessions\<userId>\<profileId>\local_<uuid>.json

After the upgrade only 2 wrapper files remained (for currently open worktrees). The 169 wrappers for historical sessions were gone — and with them, the sidebar.

Workaround: regenerated wrappers from JSONLs with a small Python script (extracting sessionId, cwd, aiTitle, timestamps, worktree metadata). After restart, all 169 sessions reappeared in sidebar and are fully navigable.

Expected behaviour: preserve wrapper index across upgrades, or fall back to rebuilding it from JSONLs on startup when entries are missing / stale.


Problem 2 — Cowork: local-only storage, permanently lost (non-recoverable)

Cowork conversations visible pre-upgrade in the sidebar (Test implementation, Dispatch background conversation, etc.) were stored in:

<DataRoot>\IndexedDB\https_claude.ai_0.indexeddb.leveldb
<DataRoot>\IndexedDB\https_claude.ai_0.indexeddb.blob

After upgrade, the cache was unreadable / cleared. Diagnostic steps:

  1. Renamed leveldb/blob to .bak and relaunched the app.
  2. Desktop App rebuilt IndexedDB (active writes observed, ~seconds after launch).
  3. Cowork sidebar remained empty.
  4. Created a fresh Cowork task → it immediately appeared in Recents, confirming the sidebar and network sync are functional.
  5. Conclusion: server returns an empty list for this account's historical Cowork conversations → they were local-only and destroyed by the upgrade.

Expected behaviour: Cowork conversations should sync to the user's cloud account the same way regular Claude.ai conversations do, so they survive client wipes / upgrades. Local-only retention with no warning is a footgun for paying users.

Minimum fix: pre-upgrade backup of IndexedDB\https_claude.ai_* into a timestamped folder inside the data root, so upgrades are reversible.


Reproduction

Single-occurrence observation, not reliably reproducible from outside:

  1. Prior version (2.1.110 — could not launch, see #51349) with populated Code sessions and Cowork tasks.
  2. Upgrade to 2.1.111 (via MSIX auto-update).
  3. Open app — both sidebars empty. CLI data on disk intact; IndexedDB effectively reset.

Asks

  1. Confirm whether Cowork conversations are supposed to be persisted server-side. If yes, investigate why sync did not happen for account `ownerAccountId: 88e42502-3852-4037-848a-3f838593b865

restore_session_index.py

. 2. Make Code wrapper index self-healing — rebuild from JSONLs on startup if stale or incomplete. 3. Add an automatic pre-upgrade backup of IndexedDB` and claude-code-sessions\. 4. Surface a one-line entry in release notes whenever an upgrade may reset local storage.

Impact

  • Code: zero data lost (workaround available), but first reaction was assuming 171 sessions were gone — bad UX.
  • Cowork: real data loss, unrecoverable for this user. Unknown how widespread.

What Should Happen?

Environment

  • Desktop App version: 2.1.111
  • OS: Windows 11
  • Install type: MSIX package (Claude_pzs8sxrjxfjjc)
    • Install: C:\Program Files\WindowsApps\Claude_1.3561.0.0_x64__pzs8sxrjxfjjc
    • Data root: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\
  • Related: #51349 (launch-failure on prior version, resolved by this 2.1.111 update, which in turn caused the data issues below).

Summary

After updating to 2.1.111, both Code and Cowork sidebars were empty. Investigation revealed two separate issues, with very different recoverability profiles.


Problem 1 — Code sidebar empty while session data is intact (recoverable)

CLI session JSONLs under %USERPROFILE%\.claude\projects\*\*.jsonl were untouched — 171 sessions, ~830 MB across 7 projects.

Sidebar reads a separate wrapper index:

<DataRoot>\claude-code-sessions\<userId>\<profileId>\local_<uuid>.json

After the upgrade only 2 wrappers remained (for currently open worktrees). The other 169 were missing, and the sidebar followed the index.

Workaround — I wrote a Python script that scans JSONLs, extracts sessionId, cwd, aiTitle, timestamps, worktree metadata, and emits one wrapper JSON per orphaned session. After relaunch, all 169 sessions reappear in sidebar correctly, with AI-generated titles preserved.

Script attached: restore_session_index.py. Handles both MSIX and legacy Electron install paths; dry-run by default; auto-backup of the wrapper folder before any write; refuses to run while claude.exe is active.

Expected behaviour: the wrapper index should either survive upgrades, or be rebuilt lazily from the JSONLs on startup when entries are missing. The fact that a ~150-line script can reconstruct it end-to-end suggests this is not hard to do in the app itself.


Problem 2 — Cowork history disappeared; storage model unclear (recoverability unknown)

Pre-upgrade, the sidebar listed local Cowork conversations (e.g. Test implementation under masterpipeline, Dispatch background conversation under Other). After the upgrade they are all gone.

Diagnostic steps:

  1. Renamed <DataRoot>\IndexedDB\https_claude.ai_0.indexeddb.{leveldb,blob} to .bak.
  2. Relaunched the app. A fresh IndexedDB was created and the app wrote into it within seconds.
  3. Cowork sidebar still empty.
  4. Created a new Cowork task → it immediately appeared in Recents. Confirms the sidebar code path and network sync for new items are functional.
  5. Restored the .bak leveldb and inspected its log file. Found only the empty schema (conversations_v2, clientState, keyval-store, …) — no titles, no conversation UUIDs, no messages.

Critical unknown: I could not determine whether the historical conversations were

  • (a) local-only and truly destroyed by the upgrade, or
  • (b) still present on the server but filtered out / not rendered by the Desktop App.

Without looking at the actual HTTP response to whatever endpoint populates the sidebar, these two cases look identical from the outside. DevTools appear to be locked in the MSIX build, so I could not inspect network traffic.

Expected behaviour: upgrades should never silently destroy user conversations — regardless of which of (a)/(b) applies. If storage is local-only, that itself is a footgun that should be documented and coupled with automatic pre-upgrade backups of IndexedDB\.


Steps to reproduce

Single-occurrence observation. Not reliably reproducible from outside.

  1. Prior version (2.1.110 or similar) with populated Code sessions and Cowork conversations.
  2. Upgrade to 2.1.111 via MSIX auto-update.
  3. Launch → both sidebars empty.

Asks

  1. Clarify storage model for Cowork conversations — local-only, server-hosted, or hybrid? This directly determines whether the data loss is permanent. If server-hosted, please investigate why the sidebar renders zero results for account ownerAccountId: 88e42502-3852-4037-848a-3f838593b865 post-upgrade.
  2. Make the Code wrapper index self-healing — on startup, detect missing wrappers whose JSONLs are present and rebuild them (logic is trivial, see attached script).
  3. Automatic pre-upgrade backup of claude-code-sessions\ and IndexedDB\ into a timestamped folder inside the data root. Upgrades should be reversible.
  4. Surface reset/migration events in release notes, so users know to back up data themselves if auto-backup isn't implemented yet.

Impact

  • Code: zero data lost — but first impression was that 171 sessions across months of work were gone. Bad UX for a recovery that took a half-day of reverse-engineering.
  • Cowork: real data loss from the user's perspective, recoverability unknown without access to server logs.

Attachments

  • restore_session_index.py — workaround script for Problem 1. Safe defaults (dry-run by default, auto-backup, refuses to run with app open). CC0.
  • .bak folders of the post-upgrade empty IndexedDB available on request if helpful for forensics.

Error Messages/Logs

Steps to Reproduce

Single-occurrence observation. Not reliably reproducible from outside.

  1. Prior version (2.1.110 or similar) with populated Code sessions and Cowork conversations.
  2. Upgrade to 2.1.111 via MSIX auto-update.
  3. Launch → both sidebars empty.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

No response

Claude Code Version

Version 1.3561.0 (fbc74b) Desktop App

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

restore_session_index.py

extent analysis

TL;DR

The most likely fix for the empty sidebars in the Claude Code desktop app is to implement a self-healing mechanism for the Code wrapper index and to add an automatic pre-upgrade backup of the IndexedDB and claude-code-sessions folders.

Guidance

  • Investigate the storage model for Cowork conversations to determine whether the data loss is permanent or if the conversations are still present on the server.
  • Implement a self-healing mechanism for the Code wrapper index to rebuild missing wrappers from JSONLs on startup.
  • Add an automatic pre-upgrade backup of the IndexedDB and claude-code-sessions folders to prevent data loss in future upgrades.
  • Consider surfacing reset or migration events in release notes to inform users of potential data loss and the need for backups.

Example

The provided restore_session_index.py script demonstrates how to rebuild the Code wrapper index from JSONLs, and this logic could be integrated into the app itself.

Notes

The root cause of the issue appears to be related to the upgrade process, which resulted in the loss of the Code wrapper index and the IndexedDB data. The provided script and the investigation steps suggest that the data loss may be recoverable, but further investigation is needed to confirm this.

Recommendation

Apply the workaround by implementing a self-healing mechanism for the Code wrapper index and adding an automatic pre-upgrade backup of the IndexedDB and claude-code-sessions folders. This will help prevent similar data loss issues in the future and provide a more robust user experience.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [BUG] Desktop App 2.1.111 upgrade: Code session index wiped (recoverable via workaround); Cowork history disappeared (cause unclear)