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 作为独立消息发送
- 后端只接受
user或assistant角色 - 角色验证失败 → 422 错误
解决方案:回退版本
VSCode 插件回退步骤
-
打开扩展面板
- 快捷键:
Ctrl+Shift+X(Win/Linux)或Cmd+Shift+X(Mac)
- 快捷键:
-
找到 Claude Code 插件
- 必须是已安装状态
-
选择旧版本
- 右键点击插件 →
Install Another Version...
- 右键点击插件 →
-
选择版本
- 在弹出列表中选择旧版本(推荐
v2.1.152或v2.1.153)
- 在弹出列表中选择旧版本(推荐
-
重启 VSCode
- 安装完成后点击
Reload Window - 或者直接重启 VSCode
- 安装完成后点击
推荐版本
| 版本 | 状态 | 备注 |
|---|---|---|
| v2.1.152 | ✅ 推荐 | 基本正常 |
| v2.1.153 | ✅ 可用 | 也可使用 |
| 最新版 | ❌ 有问题 | 会报 422 错误 |
注意事项
⚠️ 一定要重启 VSCode,否则可能不生效。
⚠️ 回退后建议检查插件设置,确保配置没有丢失。
后续
等后端支持 system 角色后,可以重新升级到最新版。
创建时间:2026-05-29