跳转到内容

CC Switch local proxy failed while handling Codex /responses

Quick fix

升级 CC Switch 到最新版并重开 Codex 对话;旧会话历史中残留的非法 schema 或图片块会持续触发 400。

报错原文
CC Switch local proxy failed while handling Codex endpoint /responses. Provider: DeepSeek; model: deepseek-v4-flash; upstream_status: HTTP 400; cause: Invalid schema for function 'codex_app__automation_update': schema must be a JSON Schema of 'type: "object"', got 'type: null'.

Codex 客户端强制使用 Responses API(`/responses` 端点),而第三方供应商(DeepSeek、智谱 GLM、Kimi 等)仅支持 Chat Completions 格式。CC Switch 本地代理在将 Responses 请求转换为 Chat Completions 格式时存在多个转换缺陷,导致上游返回 HTTP 400。这些缺陷涉及工具 schema 转换、图片块映射、上下文超限及消息 ID 格式等多个方面。最常见的原因是 Codex 内置工具 `codex_app__automation_update` 的 schema 顶层使用了 `oneOf` 但缺少 `type: "object"`,CC Switch 未做兜底补全,直接透传给上游导致被拒。此外,发送图片给非多模态模型(如 DeepSeek、GLM)时,`input_image` 类型未被过滤或转换,同样触发 400。部分问题在 v3.17.0 及后续版本中已修复,但仍有部分场景(如 xAI OAuth、Kimi `$ref` 校验)在最新版中未完全解决。

  1. 升级 CC Switch 到最新版本。v3.17.0 修复了 `codex_app__automation_update` 的 schema `type: null` 兜底问题,后续版本逐步修复了图片块转换等问题。

  2. 在 Codex 中新开一个对话。旧会话的历史记录中可能已残留非法的 schema 或 `image_url` 块,即使升级 CC Switch 后,重发历史仍会触发同样的 400 错误。

  3. 如果使用的是 DeepSeek、GLM 等非多模态模型,避免在 Codex 中发送图片。这些模型不支持 `image_url` 或 `input_image` 类型的 content 块,发送图片必然导致 400。

  4. 检查 `~/.codex/config.toml` 配置,确保 `wire_api = "responses"` 且 `base_url` 指向 CC Switch 本地代理地址(通常为 `http://127.0.0.1:15721/v1`)。

ToolCodex
Version3.16.1 - 3.20.0(受影响范围)
PlatformsmacOSWindows

本页汇总自 43 个真实 issue

升级到最新版后为什么还是报错?
旧会话的历史记录中已经保存了非法的 schema 或图片块,Codex 每次请求都会带上完整历史,导致上游持续返回 400。必须新开一个对话才能解决。
发送图片就报错,但文字对话正常,是 CC Switch 的 bug 吗?
部分模型(如 DeepSeek、GLM 的某些版本)本身不支持多模态输入。CC Switch 在转发含图片的请求时,如果没有对非多模态模型过滤图片块,就会触发 400。升级到最新版可改善此问题,但最根本的解决方式是使用支持多模态的模型。
报错提示 `Invalid schema for function 'codex_app__automation_update'` 是什么意思?
Codex 内置的 `codex_app__automation_update` 工具使用了 `oneOf` 结构的 JSON Schema,顶层缺少 `type: "object"`。CC Switch 在转换格式时未补全该字段,导致上游 API 严格校验失败。v3.17.0 已修复此问题。
使用 Kimi 模型时报 `tools.function.parameters is not a valid moonshot flavored json schema` 怎么办?
这是 Moonshot(Kimi)特有的严格 schema 校验规则,要求 `$ref` 引用不能与同级关键字并存。该问题在 v3.20.0 中仍未完全修复,建议关注后续版本更新。
报错 `level "max" not supported` 或 `max_tokens must be at least 1, got -1712` 是什么原因?
前者是 Codex Desktop 对特定模型(如 `gpt-5.6-sol`)的 reasoning effort 级别映射不完整导致;后者是 CC Switch 在计算 `max_tokens` 时出现负数溢出。两者均为 CC Switch 的转换逻辑缺陷,建议升级到最新版并关注相关 issue 进展。

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