docs/test_503_issue.md
本指南针对近期反馈的 503 错误(Issue #1794 及后端容量限制)提供测试验证示例。
场景描述:
部分账号(特别是 Free 账号或受限账号)在调用官方接口获取项目 ID 时会报错 账号无资格获取官方 cloudaicompanionProject。在修复前,系统会直接跳过该账号导致最终返回 503;修复后,系统将自动使用通用 Project ID (bamboo-precept-lgxtn)。
curl 进行基础连通性测试请使用一个之前报错 503 的账号对应的 API Key(或直接通过代理):
curl http://localhost:8045/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-antigravity-key" \
-d '{
"model": "gemini-2.0-flash",
"messages": [
{"role": "user", "content": "你好,请确认你的工作状态。"}
],
"stream": false
}'
预期现象: 当系统检测到权限问题时,日志中会出现如下 Warn 信息,但请求不应报错 503,而是继续执行:
WARN Failed to fetch project_id for [email protected], using fallback: Account is not eligible for official cloudaicompanionProject
DEBUG [TokenManager] Using project_id: bamboo-precept-lgxtn for request
场景描述: 当账号配额耗尽或后端因高负载返回 503 时,系统应正确识别并尝试轮换账号,而不是直接透传 503 给客户端。
claude "这段代码哪里有 Bug?[附带一段长代码]"
验证点:
[RetryStrategy] Status 503 detected, rotating account...。场景描述:
由于 claude-opus-4-6-thinking 模型目前处于试验阶段,Google 后端时常返回 No capacity available (503)。
claude --model claude-opus-4-6-thinking "执行一次深度的推理任务,比较 Rust 和 C++ 的异步内存模型。"
预期结果分析:
如果返回 503 且消息包含 "No capacity available":
gemini-2.0-flash-thinking-exp 或 claude-3-7-sonnet 进行测试。如果返回成功:
如果您想强制模拟 Project ID 失败的场景进行代码级验证,可以在 src-tauri/src/proxy/token_manager.rs 中暂时修改模拟逻辑。但在大多数情况下,通过观察日志中是否出现 using fallback: ... 字样即可确认修复生效。