[BUG] Code tab shows no sessions after upgrade to 1.17377; sessions exist and validate on disk, LocalSessions.getAll fails validation
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?
Summary
After the Claude Desktop app upgraded from 1.1.2685 to 1.17377, the Code tab shows no sessions or projects, despite 88 valid session files existing on disk under the correct, config-referenced account ID. Chat history works. Projects data exists on disk. The session files all parse as valid JSON and contain IDs. The app does not appear to read the session folder on launch (folder modified-time does not update), and the renderer surfaces repeated LocalSessions.getAll validation failures.
This is the Claude Desktop app (Cowork + Code tabs) on Windows, not the Claude Code CLI.
What's Wrong
On opening the Code tab, the renderer throws repeatedly:
Error occurred in handler for '..._$_claude.web_$_LocalSessions_$_getAll':
Error: Result from method "getAll" in interface "LocalSessions" failed to pass validation
at ...app.asar\.vite\build\index.js:7:113800
at async Session.<anonymous> (node:electron/js2c/browser_init:2:113052)
Alongside it, a preference validation error fires on startup. The on-disk config value is valid ("sidebarMode": "task"), but the renderer attempts to set an invalid literal:
Error occurred in handler for '..._$_claude.settings_$_AppPreferences_$_setPreference':
Error: Failed to validate inbound preference (key=sidebarMode):
ZodError: invalid_union
received: "epitaxy"
expected: "chat" | "code" | "task"
The value "epitaxy" does not exist anywhere in the on-disk config files; it appears to be injected from stale renderer state during init.
Earlier-stage symptoms (same session, before reaching the above)
Prior to and during the upgrade, the following also occurred and may share a root cause:
Disk cache write failures, even on a freshly recreated cache folder with correct ACLs (full control confirmed via icacls):
ERROR:net\disk_cache\cache_util_win.cc:25] Unable to move the cache: Access is denied. (0x5)
ERROR:net\disk_cache\disk_cache.cc:236] Unable to create cache
Process accumulation: 8-9 orphaned claude processes present after normal use, reproducible across reboots. Force-killing them cleared the cache error but not the Code session issue.
Crashpad registration failure after force-killing processes:
ERROR:third_party\crashpad\...\registration_protocol_win.cc:108] CreateFile: The system cannot find the file specified. (0x2)
A dangling cache key referencing a local-agent-mode-sessions path that no longer exists ("The system cannot find the path specified").
Data location (confirmed safe, identifiers redacted)
Session store layout:
%APPDATA%\Claude\claude-code-sessions\
└─ <accountID>\ (matches config.json + bridge-state.json)
└─ <envID>\ (Cowork environment ID)
└─ ...\local_*.json (88 files, all valid JSON, all have IDs)
The account ID is the one referenced by config.json and bridge-state.json — correct.
bridge-state.json uses a composite key "<envID>:<accountID>" with environmentId, remoteSessionId, localSessionId — consistent, not corrupted.
Legacy CLI path %USERPROFILE%.claude\sessions is empty (0 files); %USERPROFILE%.claude\projects has 158 items. Desktop does not write sessions to the legacy path.
The session folder's modified-time did NOT update on a clean launch of 1.17377, suggesting the new build never reads it before getAll fails.
Diagnostics already ruled out
Not antivirus (Defender real-time + Malwarebytes both off/excluded; error persists).
Not folder permissions (full control confirmed at cache folder, AppData\Local, AppData, and profile root via icacls; no deny rules; no junctions/symlinks).
Not a corrupt session file (all 88 parse as valid JSON with IDs).
Not a duplicate install (single package 1.17377 registered via Get-AppxPackage; the 1.1.2685 folder is an orphaned leftover).
Not stale Chromium renderer state alone (clearing Cache / Code Cache / GPUCache / Session Storage / Local Storage / IndexedDB fixed chat history but not the Code tab).
Config on disk is valid ("sidebarMode": "task"); the invalid "epitaxy" value is injected at runtime, not stored.
Likely root cause (hypothesis)
A migration gap on the 1.1.x to 1.17377 upgrade: the new build's LocalSessions.getAll schema rejects the older session-index/nesting format and blanks the entire list rather than migrating or skipping, so valid on-disk sessions never surface. The "epitaxy" preference and stale getAll references suggest leftover renderer/index state from the old build that the new schema rejects.
Notes
No data appears lost — this is a read/migration/display problem, not data loss. Happy to provide debug.log or redacted config files on request.
What Should Happen?
Open Claude normally.
Error Messages/Logs
Error occurred in handler for 'LocalSessions_getAll':
Error: Result from method "getAll" in interface "LocalSessions" failed to pass validation
at ...app.asar.vite\build\index.js:7:113800
at async Session.<anonymous> (node:electron/js2c/browser_init:2:113052)
Error occurred in handler for 'AppPreferences_setPreference':
Error: Failed to validate inbound preference (key=sidebarMode):
ZodError: invalid_union
received: "epitaxy"
expected: "chat" | "code" | "task"
ERROR:net\disk_cache\cache_util_win.cc:25] Unable to move the cache: Access is denied. (0x5)
ERROR:net\disk_cache\disk_cache.cc:236] Unable to create cache
ERROR:third_party\crashpad...\registration_protocol_win.cc:108] CreateFile: The system cannot find the file specified. (0x2)
Steps to Reproduce
Have a Windows profile with Claude Desktop history created under an older build (here 1.1.2685), with sessions stored under claude-code-sessions<accountID><envID>...\local_*.json
Allow the app to upgrade to 1.17377.0.0
Fully quit (kill all claude processes), launch once, open the Code tab
Observe: Code tab empty; LocalSessions.getAll validation errors in the renderer; session folder not read
BOX 5 — EXPECTED BEHAVIOR
════════════════════════════════════════════════
The Code tab lists existing sessions/projects after upgrade, migrating the on-disk store if the schema or nesting changed between builds.
════════════════════════════════════════════════
BOX 6 — ACTUAL BEHAVIOR
════════════════════════════════════════════════
Code tab empty. getAll fails validation and the app does not enumerate the (valid, intact) session files.
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
1.17377.0.0
Claude Code Version
1.17377.0.0
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗