change_directory cannot re-mount a session's original root directory after the session has moved away from it
Claude Code version: 2.1.237 → updated to 2.1.247 mid-session
Steps to reproduce:
- Start a session rooted at directory A (e.g. ~/Documents/Claude).
- Use the change_directory tool (mcp__ccd_directory__change_directory) to
move the session to directory B (e.g. a sibling project folder).
- Attempt to change_directory back to A.
Expected: session re-mounts A normally.
Actual: consistently fails with "The requested directory could not be
resolved." The verbose picker-mode variant (request_directory with no
path) surfaces more detail:
"Directory '.../A' overlaps a protected host location
('.../A/Scheduled') and cannot be mounted."
'.../A/Scheduled' does not exist on disk (confirmed via ls, find,
and Finder with hidden files shown) — nothing real is there. This
persisted after installing an available update but WITHOUT restarting
the Claude Code process for that specific session; a genuinely fresh
session opened at the same path A immediately after updating+restarting
worked fine. So the block appears tied to stale in-process state on the
session that originally started at A, not to anything in the filesystem
or to the installed version itself.
Impact: a long-running "hub" session that a user relies on as a stable
home base becomes permanently unable to return to its own root
directory once it navigates away, even briefly for a one-off task —
with no user-facing way to recover short of abandoning that session
and starting a new one from scratch (losing continuity/context).
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗