Unexpected item type in content. - CC Switch
Quick fix
在配置中启用内容块过滤以移除第三方后端不支持的 Anthropic 内部类型。
Symptom
Section titled “Symptom”The provided messages input is invalid. The error info is [Unexpected item type in content.]当使用 CC Switch 代理转发请求至非官方的 Anthropic 兼容端点(如阿里云百炼等)时,Claude Code 会在会话历史中注入其内置工具调用产生的专有 Content Block(例如 server_tool_use、web_search_result 等)。这些内部类型仅由 Anthropic 官方服务端识别,第三方后端无法解析,因此在后续请求中直接返回 400 错误。目前该问题在相关 Issue 中仍处于开放状态,尚未有官方合并的修复方案;社区建议通过 Rectifier 层增加过滤逻辑来剥离这些不支持的类型。
打开 cc-switch 配置文件,在 rectifier 配置项中启用内容块过滤功能。
Affected Versions
Section titled “Affected Versions”ToolClaude Code / Codex
Version未知
PlatformsmacOSWindows
Source Issues
Section titled “Source Issues”本页汇总自 2 个真实 issue
- 报错后当前会话还能继续使用吗?
- 不能。一旦会话历史中混入不支持的内部 Content Block,该 Session 的所有后续请求都会持续返回 400。需要新建一个 Session 才能恢复正常对话。
- 这个错误是否只影响特定模型?
- 不影响具体模型名称,而是取决于目标 API 端点是否完全兼容标准 Anthropic 格式。任何拒绝 server_tool_use 或 web_search_result 等非标准类型的第三方后端都会触发此报错。
- 为什么开启本地代理或切换 Provider 后会突然出现此问题?
- 因为 CC Switch 默认会原样转发完整的消息历史。当 Claude Code 触发内置搜索或工具调用时,会自动附加这些专有标记。如果目标端点不是 Anthropic 官方服务,就会因无法识别而拦截请求。
api failed deserialize json body into按错误类型回退 Claude Code、升级 cc-switch、关闭本地代理或停止发送不支持的字段。Request body format invalid 报错 Claude Code升级 cc-switch 并开启 Rectifier 整流器,或添加环境变量 MAX_THINKING_TOKENS=0 以兼容第三方 API 格式。使用claude code的代理功能后,无法显示模型的思考过程 cc-switch可先切回 Anthropic 协议恢复思考显示;若用 `openai_chat`,需修改 `streaming.rs` 的块转换,避免 Qwen 交替 `reasoning`/`content` 把 Claude Code 回复拆成多个片段。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。