跳转到内容

AbsolutePathBuf deserialized without a base path - Codex

Quick fix

在 macOS 版 Codex 中,CC Switch 写入的相对路径会导致此报错。请手动将 ~/.codex/config.toml 中的 model_catalog_json 修改为绝对路径即可修复。

报错原文
创建任务时出错
invalid configuration: AbsolutePathBuf deserialized without a base path
in `model_catalog_json`

自 CC Switch v3.16.2 起,程序在写入配置时会将 `model_catalog_json` 字段写为相对路径(如 `cc-switch-model-catalog.json`)。这在 WSL/Windows 环境下可以正常工作,但在 macOS 版 Codex 桌面端启动时,由于缺少基础路径(base path),会导致反序列化失败并抛出该错误。此问题在 CC Switch v3.16.2 至 v3.19.0 中均存在,且每次 CC Switch 写入配置时都会复现。

  1. 打开 Codex 的配置文件 `~/.codex/config.toml`。

  2. 找到 `model_catalog_json` 字段,将其从相对路径修改为绝对路径(请将 `<user>` 替换为你的实际 macOS 用户名)。

    ~/.codex/config.toml
    model_catalog_json = "cc-switch-model-catalog.json"
    model_catalog_json = "/Users/<user>/.codex/cc-switch-model-catalog.json"
  3. 或者,你也可以在 macOS 终端中直接运行以下命令进行一键替换: ```bash sed -i '' 's|model_catalog_json = "cc-switch-model-catalog.json"|model_catalog_json = "'"$HOME"'/.codex/cc-switch-model-catalog.json"|' ~/.codex/config.toml ```

ToolCodex
Version0.144.1 / 26.721.41059
PlatformsmacOS
为什么在 Windows/WSL 下没有这个问题?
CC Switch 写入的相对路径在 Windows/WSL 环境下可以被 Codex 正确解析,但 macOS 桌面端在反序列化时严格要求绝对路径,因此仅在 macOS 上报错。
通过 CC Switch 恢复数据库备份能解决吗?
有用户反馈恢复最新数据库备份后暂时恢复正常,但这并非根本解决办法。因为每次 CC Switch 写入配置时都会重新触发该问题,必须手动修改配置文件为绝对路径。
如果配置中还出现了 `url is not supported for stdio` 报错怎么办?
这是 CC Switch MCP sync 的另一个已知问题。它在写回 `config.toml` 时会错误地将 HTTP 字段追加到已有的 stdio 条目上。你需要手动编辑 `~/.codex/config.toml`,删除冲突的 `command`、`args` 和 `type = "stdio"` 字段,仅保留 `url` 相关配置。

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