[BUG] Windows junction/symlink project aliases create duplicate Claude Desktop projects and runtime-bound broken sessions
Resolved 💬 3 comments Opened May 5, 2026 by BasedGPT Closed Jun 2, 2026
Preflight Checklist
- [x] I have searched existing issues and did not find this specific Windows junction/symlink failure mode
- [x] This is a single bug report
- [x] I am using a current Claude Desktop / Claude Code install
What's Wrong?
Claude Desktop appears to derive the .claude\projects\<slug> storage directory from the literal cwd path string used at session start, without resolving Windows junctions/symlinks first. It also appears to keep that literal cwd string bound in memory for later filesystem operations.
This creates two related failure modes:
- A project accessed through both a real path and a junction path becomes two separate Claude Desktop projects.
- Removing the junction while a session launched through that path is still alive breaks runtime filesystem access for that session.
Example:
---
[!IMPORTANT] Recovery toolkit: Diagnostic and repair tooling for this and related Windows session-recovery cases - https://github.com/BasedGPT/claude-code-session-recoverypython tools/diagnose.pyis read-only and identifies the failure mode. The junction / path-alias case in this issue is handled bytools/sessions/rewrite_metadata_cwd.pyoncediagnose.pyhas classified it.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗