Upstream request failed - CC Switch
Quick fix
检查上游提供商是否支持当前模型或地区限制,切换可用模型即可。
Symptom
Section titled “Symptom”Failed to authenticate. API Error: 403 Upstream request failed: [403] This model is not available in your region.该错误通常由上游提供商返回的 HTTP 403 状态码引起,具体原因为 "This model is not available in your region"(此模型在您所在地区不可用)。这表示用户配置的模型在当前网络环境或账户权限下被上游服务拒绝访问。
在部分场景下(如 Issue #3750),当使用 Claude Desktop proxy 模式且 `apiFormat: anthropic` 时,如果请求体中包含位于 `messages` 数组内的 `role: "system"` 消息,某些严格的 Anthropic-compatible 后端(如 sub2api antigravity)会拒绝该格式并返回 "Upstream request failed" 或 HTTP 400 INVALID_ARGUMENT。虽然错误文本略有不同,但核心机制均为上游对请求格式或模型可用性的拒绝。若遇到的是 403 错误,请优先确认模型可用性;若遇到 400 错误且涉及 system 消息,请参考 Issue #3750 中的规范化修复建议。
确认上游提供商支持的模型列表。尝试将配置中的模型切换为其他已知可用的模型(如 DeepSeek 系列),以验证是否为特定模型的地域限制问题。
~/.cc-switch/settings.json {"providers": [{"id": "your-provider-id","model": "deepseek-chat"}]}如果使用 Claude Desktop proxy 模式并遇到 400 错误(非 403),请确保 CC Switch 版本 >= 3.16.1 并检查是否已应用 system 消息规范化逻辑。若未自动处理,需手动修改请求转发逻辑或升级至包含修复的版本。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 2 个真实 issue
- 为什么连接测试成功但实际发送消息失败?
- 连接测试可能仅发送最小化请求而不包含 system 消息或特定模型参数。实际使用时,Claude Desktop 会发送包含 system 指令的请求,若上游后端严格校验 messages[].role=system 格式或模型地域限制,则会触发 "Upstream request failed"。
- 如何区分是模型不可用还是请求格式错误?
- 查看完整错误信息:若包含 "[403] This model is not available in your region",则为模型/地域问题;若包含 "HTTP 400" 和 "INVALID_ARGUMENT" 且涉及 system 消息,则为请求格式问题。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。