跳转到内容

Invalid type for 'messages': expected an array Codex

Quick fix

升级 cc-switch 至最新版修复转换 Bug,或降级 Codex CLI 至 0.80.0 并改用 wire_api="chat" 绕过。

报错原文
Invalid type for 'messages': expected an array of objects, but got null instead.

当 Codex CLI 版本 >= 0.99 时,官方移除了 wire_api = "chat" 选项,强制使用 Responses API。当 cc-switch 尝试将 Codex 的 Responses API 请求(包含 input 字段)转发给仅支持 Chat Completions 的上游(如 MiniMax、JD Cloud)时,由于转换逻辑缺陷,未能将 input 正确映射为 messages 数组,导致 messages 字段为 null。上游 API 校验失败并返回 HTTP 400 错误。

  1. 升级 cc-switch 至最新版本,官方已修复 Responses API 到 Chat Completions 的转换逻辑。

  2. 若暂时无法升级 cc-switch,可降级 Codex CLI 至 0.80.0(最后一个支持 chat 模式的版本),并修改 Codex 配置文件:

    ~/.codex/config.toml
    wire_api = "chat"
ToolCodex
Version>= 0.99.0
PlatformsWindowsmacOS
为什么用 curl 直接请求上游 API 不会报错?
上游 API 本身是健康的。报错是因为 cc-switch 作为中间件,在协议转换时未能正确生成 messages 数组,上游实际收到的是 null。

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