跳转到内容

invalid tool_call_id(HTTP 400)— Codex

Quick fix

工具调用时报错时,可改用原生 Responses 兼容的 GPT 类模型;v3.16.5 可回退至 v3.16.4。

报错原文
{"error":{"message":"CC Switch local proxy failed while handling Codex endpoint /responses.
Provider: SenseNova; model: deepseek-v4-flash;
upstream_status: HTTP 400; cause: invalid tool_call_id",
"type":"invalid_request_error","code":"3","param":null,
"provider":"SenseNova","model":"deepseek-v4-flash",
"endpoint":"/responses","upstream_status":400}}

已报告受影响的版本为 v3.16.5 和 v3.20.1。Codex 以 Responses 请求经配置为 Chat Completions 的上游时,工具调用相关的 `tool_call_id` 可能未被正确转换。v3.16.5 的报告表现为请求仍以 Responses 形式转发,上游返回 `invalid tool_call_id`;v3.20.1 的变体则显示为 `messages.2.tool_call_id 长度不足`。

v3.20.1 的实测评论指出,该上游对长度 1~14 的非空 id 均接受,报错实际对应空字符串 id。另一条评论称,`function_call_output` 缺少 `call_id` 时,转换层会以 `unwrap_or("")` 写出空 id,并已提出 PR #7374;该 PR 在所给材料中仅为已提出,尚无已合并或已发布修复的证据。另有 `vision` 能力不支持的 HTTP 400 报告,属于同一环境中叠加的不同错误变体。

  1. 若需要立即继续工具调用,改用报告中已验证可正常工作的原生 Responses 兼容 GPT 类模型。

  2. 若问题始于 v3.16.5,可按报告中的临时方案回退到 v3.16.4。

  3. 对于 v3.20.1 的空 `tool_call_id` 变体,关注 PR #7374 的后续合并与发布状态;原帖未提供已发布版本的可验证修复。

ToolCodex
Version已报告受影响:3.16.5、3.20.1
PlatformsWindows
这个回归是否已经被追踪?
材料中仅显示有人已提出 PR #7374,未提供已合并、已发布或已验证修复的证据。
v3.16.5 中 Responses → Chat Completions 的请求体重写在哪里执行?
原帖请求维护者指出对应文件或函数,但所给讨论中没有提供该位置的确认答复。

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