跳转到内容

原子替换失败 os error 50 - cc-switch

Quick fix

将 Claude Code 配置目录从 WSL 路径改回 Windows 本地路径,或回退至 v3.19.0。

报错原文
更新供应商失败:同步 Claude Live 配置失败: 写入 Claude 配置失败: 原子替换失败: \\wsl.localhost\Ubuntu-24.04\home\f\.claude\settings.json.tmp.25844.1786072807352757000.15 -> \\wsl.localhost\Ubuntu-24.04\home\f\.claude\settings.json: 不支持该请求。 (os error 50)

在 cc-switch v3.19.2 中,保存供应商配置时会通过原子替换(atomic replace)的方式写入 `settings.json`。该机制会先写入一个临时文件,再将其重命名为目标文件。然而,Windows 的文件系统不支持跨 WSL 网络路径(如 `\\wsl.localhost\...`)进行原子重命名操作,因此触发 `os error 50`(不支持该请求)错误,导致保存失败。回退到 v3.19.0 可避免此问题,因为旧版本未采用此写入机制。

  1. 将 cc-switch 的 Claude Code 配置目录从 WSL 路径(如 \\wsl.localhost\Ubuntu-24.04\home\f\.claude)修改为 Windows 本地路径。

    // ~/.cc-switch/settings.json
    "claudeConfigDir": "\\\\wsl.localhost\\Ubuntu-24.04\\home\\f\\.claude"
    "claudeConfigDir": "C:\\Users\\<你的用户名>\\.claude"
  2. 如果必须使用 WSL 路径,请将 cc-switch 回退至 v3.19.0 版本。

ToolClaude Code
Version3.19.2(受影响版本,v3.19.0 不受影响)
PlatformsWindows
为什么 v3.19.0 可以正常保存,升级到 v3.19.2 就报错了?
v3.19.2 引入了新的原子替换写入机制,而 Windows 系统不支持对 WSL 网络路径执行原子重命名操作,因此会报错。v3.19.0 使用的是旧的直接写入方式,不涉及重命名操作。
除了回退版本,还有其他解决方法吗?
有。你可以将 Claude Code 的配置目录从 WSL 路径改回 Windows 本地路径(如 C:\\Users\\<用户名>\\.claude),这样原子替换操作就能在本地文件系统上正常执行。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。