Windows MSIX: failed auto-update falls back to uninstall+reinstall, silently destroying app data (chat sidebar, session list)
Claude Desktop (Windows/MSIX): failed auto-update falls back to uninstall+reinstall, silently destroying all app data (chat sidebar, session list)
Environment
- Claude Desktop 1.26832.0 (MSIX package
Claude_1.26832.0.0_x64__pzs8sxrjxfjjc), Claude Code 2.1.222 - Windows 11 Pro, OS build 26100 (
10.0.26100.8972) - Install source: MSIX with filesystem virtualization active (app data virtualized to
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude)
- Auto-update: in-app updater (
[updater] Update URL: https://api.anthropic.com, MSIX path);
main.log also reports [CCD-autoupdate] Disabled: MSIX install
Summary
When the in-app MSIX updater fails an in-place update, it falls back to a full package
Remove followed by a clean Add of the downloaded .msix. Removing the package deletes%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\ — including LocalCache\Roaming\Claude, which
holds the chat sidebar database (SharedStorage), the Claude Code session list
(claude-code-sessions), window state, and preferences. The app then relaunches with an empty
sidebar. To the user this presents as "Claude crashed and all my chats are gone."
It happened twice on the same day (2026-08-10, ~5:41 PM and ~10:22 PM local). CCD session
transcripts survive (they live in ~/.claude/projects, outside the package sandbox), so the
data is recoverable via claude --resume <id> — but the user-facing effect is total loss of
the chat list, and any state that exists only in app data is genuinely destroyed.
Evidence (Windows event logs, 2026-08-10 local time)
Microsoft-Windows-AppXDeployment/Operational and AppXDeploymentServer/Operational:
- 22:22:15 —
CoworkVMServicestops (app force-closed; user perceives a crash) - 22:22:23 — Deployment operation on downloaded temp package
Claude-2216036232.msix - 22:25:40, 22:25:48 — two further deployment attempts on the same package/version (retries)
- 22:26:14 —
Started deployment Remove operation on ... Claude_1.26832.0.0_x64__pzs8sxrjxfjjc
with 9644: AllowUninstall successful and
9647: TerminateSingleService for uninstall successful ... CoworkVMService, terminateService: true
- 22:26:30 — `Started deployment Add operation on a package with main parameter
Claude-4161465970.msix and Options ForceApplicationShutdownOption,ForceUpdateFromAnyVersion`
- 22:26:35 — Add completes; app relaunches with freshly-created data folders
(every file in both %APPDATA%\Claude and the package LocalCache has creation time 22:26:36+)
The 17:41–17:46 sequence is identical (temp package Claude-056ee2be...msix), and cost the
user their sidebar earlier the same day.
Note: the Remove and the Add reference the same version (1.26832.0.0 → 1.26832.0.0, henceForceUpdateFromAnyVersion), so this was a same-version repair/reinstall path, not an upgrade.
No Windows Error Reporting entries or Crashpad dumps exist for Claude.exe in this window — the
app did not fault; it was shut down by the deployment operations.
Expected behavior
- A failed in-place update should retry or roll back without discarding user data.
- If a remove+reinstall fallback is unavoidable, app data (
LocalCache) should be backed up
and restored across the operation — or durable user state (chat sidebar DB, session index)
should live outside the virtualized package data in the first place, as the CCD transcripts
already do (~/.claude), which is why they survive.
Actual behavior
The remove+reinstall fallback deletes the package data folder with no backup, no restore, and
no user warning. The app relaunches looking like a fresh install.
Impact
- Full loss of the chat sidebar/session list on every occurrence (twice in one day here).
- Users interpret it as a crash that deleted their conversations; the recoverability via
claude --resume is not discoverable from the UI.
- Any state that exists only in app data (window/layout state, preferences, sidebar grouping)
is unrecoverable.
Workaround in use
A scheduled task snapshots SharedStorage*, claude-code-sessions, and related state from
both the real %APPDATA%\Claude and the package LocalCache copy every 4 hours, so the
sidebar DB can be restored after the next wipe.
Suggested fixes (any one would resolve the data loss)
- Preserve/restore
LocalCacheacross the Remove+Add fallback. - Move the session index and sidebar DB out of virtualized package data into
~/.claude. - On post-reinstall first launch, detect existing transcripts in
~/.claude/projectsand
rebuild the sidebar automatically.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗