Back to Antigravity Manager

503 错误(Service Unavailable)修复验证指南

docs/test_503_issue.md

4.1.333.1 KB
Original Source

503 错误(Service Unavailable)修复验证指南

本指南针对近期反馈的 503 错误(Issue #1794 及后端容量限制)提供测试验证示例。

1. 验证 Project ID 获取失败后的自动回退 (Issue #1794)

场景描述: 部分账号(特别是 Free 账号或受限账号)在调用官方接口获取项目 ID 时会报错 账号无资格获取官方 cloudaicompanionProject。在修复前,系统会直接跳过该账号导致最终返回 503;修复后,系统将自动使用通用 Project ID (bamboo-precept-lgxtn)。

A. 使用 curl 进行基础连通性测试

请使用一个之前报错 503 的账号对应的 API Key(或直接通过代理):

bash
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
  }'

B. 观察服务端日志 (npm run tauri dev)

预期现象: 当系统检测到权限问题时,日志中会出现如下 Warn 信息,但请求不应报错 503,而是继续执行:

text
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

2. 验证 Quota Protection(配额保护)对 503 的预防

场景描述: 当账号配额耗尽或后端因高负载返回 503 时,系统应正确识别并尝试轮换账号,而不是直接透传 503 给客户端。

测试指令 (Claude CLI)

bash
claude "这段代码哪里有 Bug?[附带一段长代码]"

验证点

  • 如果当前账号返回 503,日志中应显示 [RetryStrategy] Status 503 detected, rotating account...
  • 系统应自动尝试下一个可用账号,直到获得成功响应或消耗完重试次数。

3. 区分“代码 Bug”与“后端容量限制” (Opus 4.6)

场景描述: 由于 claude-opus-4-6-thinking 模型目前处于试验阶段,Google 后端时常返回 No capacity available (503)。

测试指令

bash
claude --model claude-opus-4-6-thinking "执行一次深度的推理任务,比较 Rust 和 C++ 的异步内存模型。"

预期结果分析

  1. 如果返回 503 且消息包含 "No capacity available"

    • 这是 Google 后端容量限制,并非本软件 Bug。
    • 代理会自动通过重试策略尝试其他账号,但如果所有账号都遇到容量限制,最终会透传此 503。
    • 建议:在此负载高峰期切换到 gemini-2.0-flash-thinking-expclaude-3-7-sonnet 进行测试。
  2. 如果返回成功

    • 说明当前后端容量充足。

调试辅助技巧

如果您想强制模拟 Project ID 失败的场景进行代码级验证,可以在 src-tauri/src/proxy/token_manager.rs 中暂时修改模拟逻辑。但在大多数情况下,通过观察日志中是否出现 using fallback: ... 字样即可确认修复生效。