claude-code - 💡(How to fix) Fix Sidebar empty after app update: session-index files wiped, transcripts intact

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 Claude Desktop 2.1.92 (bundled Claude Code 1.1617.0) on Windows 11, the desktop app sidebar is empty — all prior sessions are gone from the UI. The underlying transcripts in ~/.claude/projects/ are fully intact (233 files in my case), but the session-index files the sidebar reads from were wiped by the update, and the app does not reconstruct them from the transcripts.

This appears related to #29154, #25524, and #29373 but with a concrete root cause and a verified manual recovery procedure.

Root Cause

The desktop sidebar populates from per-session JSON files at:

%APPDATA%\Claude\claude-code-sessions\<accountId>\<orgId>\local_<uuid>.json

After the update, this folder contained zero local_*.json files, even though ~/.claude/projects/*/*.jsonl contained 233 transcript files dating back months.

main.log confirms the disconnect:

[CCD] /stats scanning 233/233 transcript files since 2025-10-20
[LocalSessionManager] Initialization succeeded — accountId=…, orgId=…, existingSessions=0
[LocalAgentModeSessionManager] Initialization succeeded — …, existingSessions=0
[CCD] LocalSessions.setFocusedSession: sessionId=null   (repeating)

So the CCD stats scanner can clearly see 233 transcripts, but LocalSessionManager reports 0 existing sessions because its source of truth is the local_*.json folder, which was wiped.

Fix Action

Fix / Workaround

Currently: neither happens, and the sidebar is permanently empty from the user's perspective. The only official workaround is claude --resume from the terminal.

Code Example

%APPDATA%\Claude\claude-code-sessions\<accountId>\<orgId>\local_<uuid>.json

---

[CCD] /stats scanning 233/233 transcript files since 2025-10-20
[LocalSessionManager] Initialization succeeded — accountId=, orgId=, existingSessions=0
[LocalAgentModeSessionManager] Initialization succeeded — …, existingSessions=0
[CCD] LocalSessions.setFocusedSession: sessionId=null   (repeating)

---

{
  "sessionId": "local_<new-uuid>",
  "cliSessionId": "<transcript-filename-uuid>",
  "cwd": "…",
  "originCwd": "…",
  "createdAt": <ms>,
  "lastActivityAt": <ms>,
  "model": "claude-opus-4-7",
  "effort": "default",
  "isArchived": false,
  "title": "<from ai-title event in transcript>",
  "titleSource": "auto",
  "permissionMode": "default",
  "remoteMcpServersConfig": [],
  "completedTurns": <n>
}
RAW_BUFFERClick to expand / collapse

Summary

After updating to Claude Desktop 2.1.92 (bundled Claude Code 1.1617.0) on Windows 11, the desktop app sidebar is empty — all prior sessions are gone from the UI. The underlying transcripts in ~/.claude/projects/ are fully intact (233 files in my case), but the session-index files the sidebar reads from were wiped by the update, and the app does not reconstruct them from the transcripts.

This appears related to #29154, #25524, and #29373 but with a concrete root cause and a verified manual recovery procedure.

Environment

  • OS: Windows 11
  • Claude Desktop: 2.1.92
  • Claude Code bundled: 1.1617.0 (previously 2.1.111 for the CLI)
  • Shell: Git Bash / PowerShell

Root cause

The desktop sidebar populates from per-session JSON files at:

%APPDATA%\Claude\claude-code-sessions\<accountId>\<orgId>\local_<uuid>.json

After the update, this folder contained zero local_*.json files, even though ~/.claude/projects/*/*.jsonl contained 233 transcript files dating back months.

main.log confirms the disconnect:

[CCD] /stats scanning 233/233 transcript files since 2025-10-20
[LocalSessionManager] Initialization succeeded — accountId=…, orgId=…, existingSessions=0
[LocalAgentModeSessionManager] Initialization succeeded — …, existingSessions=0
[CCD] LocalSessions.setFocusedSession: sessionId=null   (repeating)

So the CCD stats scanner can clearly see 233 transcripts, but LocalSessionManager reports 0 existing sessions because its source of truth is the local_*.json folder, which was wiped.

Reproduction

Not fully reproduced from scratch — but every user hitting this reports it started immediately after an app update. The sidebar reads one folder, the transcripts live in another, and the update path appears to clear the former without repopulating it from the latter.

Expected behavior

One of:

  1. The update should not delete the claude-code-sessions/<acct>/<org>/ folder contents.
  2. On init, if existingSessions=0 but transcripts are present in ~/.claude/projects/, LocalSessionManager should rebuild the session index from the transcripts.

Currently: neither happens, and the sidebar is permanently empty from the user's perspective. The only official workaround is claude --resume from the terminal.

Manual recovery (verified working)

For anyone hitting this before a fix ships: the session-index file schema can be reconstructed from the transcripts. Each local_<uuid>.json contains:

{
  "sessionId": "local_<new-uuid>",
  "cliSessionId": "<transcript-filename-uuid>",
  "cwd": "…",
  "originCwd": "…",
  "createdAt": <ms>,
  "lastActivityAt": <ms>,
  "model": "claude-opus-4-7",
  "effort": "default",
  "isArchived": false,
  "title": "<from ai-title event in transcript>",
  "titleSource": "auto",
  "permissionMode": "default",
  "remoteMcpServersConfig": [],
  "completedTurns": <n>
}

All values except sessionId can be extracted from the corresponding transcript at ~/.claude/projects/<encoded-cwd>/<cliSessionId>.jsonl:

  • cwd from any system event
  • createdAt/lastActivityAt from first/last timestamp
  • title from the last ai-title event (falls back to the first user message with slash-command XML stripped)
  • model from any assistant event

Writing one file per transcript into the sessions folder and restarting the app fully restores the sidebar, with correct titles, timestamps, and resume capability. I recovered 157 sessions this way.

Suggested fix

Add a reconciliation step to LocalSessionManager init: if existingSessions=0 but ~/.claude/projects/ is non-empty, rebuild the index from the transcripts using the same fields listed above. This protects users from any future event (update bug, folder corruption, accidental delete) that empties the sessions folder.

Happy to share the recovery script if useful.

extent analysis

TL;DR

Rebuilding the session index from transcripts by adding a reconciliation step to LocalSessionManager initialization can fix the empty sidebar issue.

Guidance

  1. Verify the issue: Confirm that the claude-code-sessions folder is empty and the ~/.claude/projects/ folder contains transcript files.
  2. Rebuild session index: Manually reconstruct the session-index files from the transcripts using the provided schema and fields, and write them to the claude-code-sessions folder.
  3. Implement reconciliation step: Add a check in LocalSessionManager init to rebuild the index from transcripts if existingSessions=0 but ~/.claude/projects/ is non-empty.
  4. Test and validate: After rebuilding the index or implementing the reconciliation step, restart the app and verify that the sidebar is populated correctly.

Example

A sample script to rebuild the session index from transcripts could be shared, but its implementation details would depend on the specific requirements and environment.

Notes

This fix assumes that the issue is caused by the empty claude-code-sessions folder and that the transcripts in ~/.claude/projects/ are intact. If the issue persists after rebuilding the index, further investigation may be necessary.

Recommendation

Apply the suggested fix by adding a reconciliation step to LocalSessionManager initialization, as it protects users from future events that might empty the sessions folder and ensures a smooth recovery process.

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…

FAQ

Expected behavior

One of:

  1. The update should not delete the claude-code-sessions/<acct>/<org>/ folder contents.
  2. On init, if existingSessions=0 but transcripts are present in ~/.claude/projects/, LocalSessionManager should rebuild the session index from the transcripts.

Currently: neither happens, and the sidebar is permanently empty from the user's perspective. The only official workaround is claude --resume from the terminal.

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 Sidebar empty after app update: session-index files wiped, transcripts intact