原子替换失败 不支持该请求 os error 50 cc-switch
Quick fix
升级 cc-switch 至 v3.20.0 或更高版本,以修复 WSL 路径下配置文件原子替换失败的回归问题。
Symptom
Section titled “Symptom”原子替换失败: \\wsl.localhost\Ubuntu-22.04\home\yyl\.claude\settings.json.tmp.35200.1786108834876118600.5 -> \\wsl.localhost\Ubuntu-22.04\home\yyl\.claude\settings.json: 不支持该请求。 (os error 50)在 cc-switch v3.19.2 及更早版本中,当配置目录指向 WSL 路径(如 `\\wsl.localhost\...`)时,程序尝试使用原子替换(atomic replace)机制更新 `settings.json` 等配置文件。由于 Windows 与 WSL 之间的 9P 文件系统协议不完全支持某些原子文件操作,系统会返回 `os error 50`(不支持该请求)或 `os error 5`(拒绝访问)。
此外,在 WSL 与 Windows 目录之间频繁切换时,存在配置缓存未正确刷新的隐藏 bug,导致新配置被旧配置覆盖。该写入逻辑与缓存问题已在 v3.20.0 中修复。
升级 cc-switch 至 v3.20.0 或更高版本,该版本修复了 WSL 路径下无法更新/切换配置的回归问题。
若升级后仍提示 `os error 5`(拒绝访问),请在 WSL 终端中手动删除原有的 `.claude` 或 `.codex` 配置目录,然后重新在 cc-switch 中启用配置。
Affected Versions
Section titled “Affected Versions”ToolClaude Code
Version3.12.3 - 3.19.2
PlatformsWindows
Source Issues
Section titled “Source Issues”本页汇总自 6 个真实 issue
- 点击打开终端报错“'g' 不是内部或外部命令”怎么办?
- 这通常是因为 Windows 用户名包含中文字符,导致 cc-switch 生成的终端启动命令路径解析错误。请将 Windows 用户名改为纯英文,或检查环境变量路径。
- 为什么在 Claude Desktop 中无法使用 shell 等工具?
- Claude Desktop 使用 CCD 会话系统,默认通过 admin policy 限制了工具数量(仅允许 4 个)。这是 Desktop 本身的机制,建议在 CLI 模式下使用以获取完整工具权限。
- 在 WSL 和 Windows 目录间切换配置后,新配置被旧配置覆盖怎么办?
- 这是早期版本在跨环境切换时配置缓存未正确刷新的 bug。请升级至最新版 cc-switch,若问题依旧,可尝试重启 cc-switch 或手动清理旧配置。
原子替换失败 os error 50将 Claude Code 配置目录从 WSL 路径改回 Windows 本地路径,或回退至 v3.19.0。切换渠道后auth.json完全没变 - CodexCodex 切换渠道后 auth.json 未更新,需手动修改 auth.json 或等待 cc-switch 修复。claude mcp list 显示 ✘ Failed to connectWindows 下 cc-switch 会把 MCP 的 npx 命令自动包装成 cmd /c,破坏 stdio 管道导致连接失败;手动改回 ~/.claude.json 或用 claude mcp add 重写可临时解决。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。