跳转到内容

Function call is missing a thought_signature:Claude Code

Quick fix

先升级到 CC Switch 4.0 最新版本重试;若仍报错,请携带版本、系统、完整复现步骤和日志重新提交。

报错原文
API Error: 400 Function call is missing a thought_signature in functionCall parts.

Claude Code 或 Claude Desktop 经 CC Switch 的 Gemini Native 代理执行多轮工具调用时,Gemini 要求回放的 functionCall 携带 thought_signature。问题报告中的源码检查认为,Claude 客户端的 session id 可能不稳定,导致 CC Switch 无法从按 provider_id 和 session_id 保存的 shadow store 中取回签名,最终向 Gemini 发送缺少签名的 functionCall;该根因分析及其修复伪代码尚未经过 Rust 测试或构建验证。

同一讨论还记录了另一种同源变体:写回字段使用 thoughtSignature 时,Gemini 可能返回 Unknown name "thoughtSignature"。维护者没有确认这些源码修改,而是说明 4.0 已对相关功能进行较大重构,建议升级后重试。因此,现有材料不能确认 4.0 已修复此问题。

  1. 将 CC Switch 更新到最新的 4.0 版本后,重新执行会触发 Bash、Glob、Read 或 MCP 工具调用的任务。

  2. 如果升级后仍出现同一错误,请记录 CC Switch 版本、操作系统、完整复现步骤以及相关日志或截图,并重新打开或提交 issue。

  3. 若参与源码修复,可验证讨论中提出的方向:session 查询失败时按 provider 和 tool_call.id 恢复 thought_signature,并将写回字段统一为 thought_signature;该方案目前仅为未经测试的源码分析,不能视为已确认修复。

ToolClaude Code / Claude Desktop
Version受影响:3.16.2 - 3.16.3;4.0 是否修复未确认
PlatformsmacOS
这个问题在 v3.16.3 中仍能复现吗?
能。issue #4245 在 macOS 26.4 上使用 v3.16.3 复现,且升级前的 v3.16.2 也出现过同类错误。
应在 Gemini transform/shadow 路径的哪里修补?
讨论中的未验证分析建议:当 session 级 shadow 查询失败时,按 provider 和精确 tool_call.id 兜底恢复签名,并把写回字段统一为 thought_signature;该方案尚未运行 Rust 测试或构建。
升级到 4.0 就一定能解决吗?
不能确认。维护者只说明 4.0 对相关功能做了较大重构并要求升级重试,没有提供已修复或用户验证成功的结论。

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