Folder picker keeps deleted folders forever, and duplicates the same folder by path spelling
Folder picker keeps deleted folders forever, and duplicates the same folder by path spelling
Product: Claude Code, running in the Claude Desktop app on Windows
App version: 1.28929.0 · OS: Windows 11 Pro, build 26200 · Date: 2026-08-12
Surface: the working-folder picker next to the composer — the control used to
choose which folder a Claude Code session opens in. Its backing store is%APPDATA%\Claude\claude-code-sessions\, and the stale entries include.claude\worktrees\… directories created by Claude Code itself, so this is the
Claude Code session surface rather than a general desktop-app menu.
Paths and project names below are anonymised. Structure, counts and ratios are the real measured ones.
Related issues
- #80264 (differently-cased paths create duplicate project entries) — the
duplication reported here is the same root cause with a different trigger:
path separators (C:\a\b vs C:/a/b) rather than case. Whatever
normalisation fixes one should fix the other.
- #80108 (recent folders shared across accounts) — that report locates the
recent-folders list in ~/.claude.json → projects. For the desktop folder
picker that does not hold: I pruned ~/.claude.json to 9 project entries and
the picker kept showing a different set of 10. The picker's source is
originCwd in the session records (evidence below). Both reports ask for the
same missing affordance — a per-folder "forget".
What I believe is not yet reported: deleted folders can never be removed from
the picker by any means, and bypassPermissions grants outlive the folders they
were granted on.
Summary
The folder picker's "Recent" list shows folders that were deleted days ago, and
there is no way to remove an entry. It also lists the same folder twice when
its path was recorded with different separators (C:\Users\… vs C:/Users/…).
Ten of my rows are: 6 folders that no longer exist, and 2 folders that exist
but appear twice each. Only 2 rows are useful. The list has not changed across
several app restarts and cannot be corrected by the user.
Impact
- The picker stops being usable for navigation. Most entries are dead ends,
and the duplicates make the two live folders ambiguous — they render with the
same label, distinguished only by a truncated path.
- Stale
bypassPermissionsgrants persist for deleted folders. In
claude_desktop_config.json → preferences.epitaxyPrefs →
epitaxy-folder-permission-mode.<account>, I found bypassPermissions still
recorded for 5 directories that no longer exist. If a directory is later
recreated at one of those paths, it appears to start out pre-authorized. This
is the part I would prioritise: a permission grant should not outlive the
object it was granted on.
Where the list comes from
The list is not a stored "recents" list. It is derived from the originCwd
field of the per-session records in:
%APPDATA%\Claude\claude-code-sessions\<account>\<workspace>\local_*.json
Across 384 session records there are exactly 10 distinct originCwd values,
and they match the 10 rows of the menu exactly — including both spellings of the
duplicated folders, and two app-generated worktrees opened once, months ago:
| originCwd | records | folder exists? |
|---|---:|---|
| …\repo\project-fixes | 133 | no |
| …\repo\project-main | 116 | yes |
| …\repo\project-ingestion | 62 | no |
| …\repo\project-cowork | 44 | no |
| …\repo\project-brand | 13 | no |
| …\repo\project-main\.claude\worktrees\zen-colden-bd697c | 8 | no |
| C:/Users/…/repo/project-main (forward slashes) | 4 | yes — duplicate of row 2 |
| …\Workspace\design-pack | 2 | yes |
| C:/Users/…/Workspace/design-pack (forward slashes) | 1 | yes — duplicate of row 8 |
| …\repo\project-main\.claude\worktrees\epic-jennings-fbcb86 | 1 | no |
What does not remove an entry
- Deleting the folder. All 6 dead folders were deleted from disk; the entries
remained across restarts.
- Archiving the sessions. For
project-fixes, 133 of 133 session records
have isArchived: true, and the entry is still listed.
- Editing local state. There is nothing durable to edit — see below.
Why users cannot work around it
With the app closed, neither of these exists on disk:
%APPDATA%\Claude\claude-code-sessions\— enumerating session records returns 0%APPDATA%\Claude\claude_desktop_config.json—FileNotFoundError
When the app starts, both reappear with identical content (384 records, same
10 originCwd, same 9 permission-mode entries). Edits applied while the app is
running are reverted on the next launch. So the state is rehydrated from a
non-local source and there is no supported or unsupported local remedy.
Steps to reproduce
- Open a folder in Claude Desktop and run at least one session in it.
- Delete that folder from disk.
- Archive every session that belonged to it.
- Restart the app and open the folder picker.
Expected: the deleted folder is gone from "Recent", or can be removed.
Actual: it is still listed, permanently, with no affordance to remove it.
For the duplicate: open the same folder twice with paths differing only in
separators (C:\a\b and C:/a/b) — two separate rows appear for one folder.
Suggested fixes
- Let users remove a recent entry (context menu → "Remove from recents").
This alone resolves the report.
- Normalise paths before grouping — case and separator — so one folder is
one entry.
- Hide or mark entries whose folder no longer exists, rather than offering
them as navigation targets.
- Drop permission grants for paths that no longer exist, or re-prompt when a
path is recreated, so bypassPermissions cannot be inherited by a new folder
that merely reuses an old path.