跳转到内容

"Expecting property name enclosed in double quotes" Codex

Quick fix

升级 CC Switch 至 v3.16.4 或更高版本,以修复大请求体未正确解压导致的 JSON 解析错误。

报错原文
CC Switch local proxy failed while handling Codex endpoint /responses. Provider: Agnes; model: agnes-2.0-flash; upstream_status: HTTP 400; cause: ***.BadRequestError: OpenAIException - {"error":{"message":"Expecting property name enclosed in double quotes: line 1 column 2 (char 1)","type":"BadRequestError","param":null,"code":400}}

在使用 Codex 发送大型或复杂请求时,CC Switch 的 Responses 到 Chat Completions 转换层会出现 JSON 序列化错误,导致上游提供商拒绝请求并返回 HTTP 400 错误。

根本原因是大请求体在 JSON 解析前未被正确解压(涉及 gzip、br、deflate 及 zstd 等叠加编码)。代理将原始压缩字节直接交给 serde_json 解析,生成了缺少双引号的非法 JSON 格式(例如 {property_name: "value"})。此问题已在 v3.16.4 中通过修复解压逻辑解决。

  1. 将 CC Switch 升级至 v3.16.4 或更高版本,该版本修复了大型请求体在 JSON 解析前未正确解压的问题。

ToolCodex
Version<= 3.16.3 (在 v3.16.4 中修复)
PlatformsWindowsmacOS
升级到 v3.16.4 后不再报 JSON 错误,但缓存命中 token 一直是 0 且输入 token 持续累加,这是为什么?
这属于另一个问题。缓存命中为 0 通常与上游提供商(如 Agnes AI)的缓存机制或 API 实现有关,并非 CC Switch 的 JSON 解析故障。

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