System message must be at the beginning.:Claude Code
Quick fix
将 Claude Code 的 "model" 从 "opus" 改为 "haiku" 或其他模型族,以避免 OpenAI 兼容 API 返回 400。
Symptom
Section titled “Symptom”API Error: 400 System message must be at the beginning.在 cc-switch 代理 OpenAI 兼容聊天 API 时,Claude Code 使用 "opus" 模型族发出的请求会保留非首位的 system 消息。该后端要求 role: system 位于 messages 数组的第一项,因此拒绝请求并返回 400。
该 issue 中,"haiku" 模型族走的是另一条消息构建路径,system 消息恰好位于首位,所以会话可以正常运行。Issue 建议 cc-switch 在 Anthropic 到 OpenAI Chat Completions 的转换中规范化 system 消息顺序,但该 issue 仍处于 open 状态。
在 Claude Code 的 cc-switch 配置中,将 "model" 从 "opus" 改为 "haiku",或改用其他模型族。
重新启动 Claude Code 会话,确认不再出现该 400 错误。
Affected Versions
Section titled “Affected Versions”ToolClaude Code
Version3.20.4(受影响版本)
PlatformsmacOS
Source Issues
Section titled “Source Issues”本页汇总自 1 个真实 issue
(暂无 FAQ)
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。