跳到主要内容

Claude Code API 422 错误解决方案

问题现象

使用 Claude Code 时突然报错:

API Error: 422
{
"detail": [
{
"type": "literal_error",
"loc": ["body", "messages", 1, "role"],
"msg": "Input should be 'user' or 'assistant'",
"input": "system",
"ctx": {"expected": "'user' or 'assistant'"}
}
]
}
Received Model Group=claude_code_model
Available Model Group Fallbacks=None

原因分析

根本原因:Claude Code 最近新版本强制往 messages 里塞 role: system,但后端(OpenClaw / litellm / 国产模型)不支持 system 角色,导致 422 错误。

技术细节

  • 新版本 Claude Code 把 system prompt 作为独立消息发送
  • 后端只接受 userassistant 角色
  • 角色验证失败 → 422 错误

解决方案:回退版本

VSCode 插件回退步骤

  1. 打开扩展面板

    • 快捷键:Ctrl+Shift+X(Win/Linux)或 Cmd+Shift+X(Mac)
  2. 找到 Claude Code 插件

    • 必须是已安装状态
  3. 选择旧版本

    • 右键点击插件 → Install Another Version...
  4. 选择版本

    • 在弹出列表中选择旧版本(推荐 v2.1.152v2.1.153
  5. 重启 VSCode

    • 安装完成后点击 Reload Window
    • 或者直接重启 VSCode

推荐版本

版本状态备注
v2.1.152✅ 推荐基本正常
v2.1.153✅ 可用也可使用
最新版❌ 有问题会报 422 错误

注意事项

⚠️ 一定要重启 VSCode,否则可能不生效。

⚠️ 回退后建议检查插件设置,确保配置没有丢失。


后续

等后端支持 system 角色后,可以重新升级到最新版。


创建时间:2026-05-29