Invalid schema for function Codex 报错
Quick fix
升级 cc-switch 修复工具 Schema 转换缺陷;若上游严格拒绝 oneOf,暂用历史任务或更换模型。
Symptom
Section titled “Symptom”Invalid schema for function 'codex_app__automation_update': schema must be a JSON Schema of 'type: "object"', got 'type: null'.Codex 和 Claude Code 注入的内置桌面工具(如 codex_app__automation_update)的 JSON Schema 在根层级缺失 "type": "object" 或使用了 oneOf。当 cc-switch 将 Responses 格式转换为 OpenAI Chat Completions 格式并转发给第三方提供商(如 DeepSeek、Databricks)时,上游 API 会进行严格的 JSON Schema 校验并返回 HTTP 400 错误。
早期 cc-switch 版本未处理 type: null 的情况,后续版本(如 PR #4706 合入后)虽将其规范化为 {"type": "object", "properties": {}},但在处理复杂 Schema 时仍保留了顶层的 oneOf。这导致部分校验极其严格的上游(如 Databricks 托管的 OpenAI 模型)依然会拒绝请求。
将 cc-switch 升级到最新版本(至少包含 PR #4706 的版本),以修复 type: null 导致的 DeepSeek 等上游 400 错误。
若使用 Databricks 等严格拒绝顶层 oneOf 的上游,请暂时继续使用历史任务(利用 deferred namespace 机制避免直接暴露该工具),或更换对 Schema 校验较宽松的模型提供商。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 4 个真实 issue
- #3847Anthropic-OpenAI tool parameter schema: type becomes null
- #4705Codex Desktop使用DeepSeek provider,自动调用codex_app__automation_update 时出现 parameters schema type:null 导致 HTTP 400
- #4834cause: Invalid schema for function 'codex_app__automation_update': schema must be a JSON Schema of 'type: "object"', got 'type: null'.
- #6101[Bug] Databricks GPT-5.6: fresh Codex task fails when automation_update is flattened into Chat tools
- 为什么直连官方 API 不报错,使用 cc-switch 代理就会报错?
- 官方 API 对工具 Schema 的校验较为宽松,而 cc-switch 将请求转换为 OpenAI Chat Completions 格式转发给第三方时,第三方(如 DeepSeek)会进行严格的 JSON Schema 规范校验。
- 升级 cc-switch 后仍然报 oneOf 错误怎么办?
- 部分上游(如 Databricks)拒绝顶层包含 oneOf 的 Schema。在 cc-switch 彻底扁平化 Schema 前,可尝试使用历史任务触发 deferred namespace 机制,或更换校验较宽松的上游模型。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。