503 No available accounts
503 No available accounts 表示请求已经到达中转站或代理网关,但当前没有可调度的上游账号、供应商或分组可用。它不是典型的 API Key 写错问题,更像账号池容量、模型限流、分组权限、客户端限制或路由故障的信号。
错误摘要
先不要盲目换 Key。这个错误通常说明账号池、供应商、分组或模型路由暂时不可用。先测最小请求、确认模型和分组,再判断是等待恢复、降低上下文,还是换 provider。
这个错误是什么意思
503 Service Unavailable 表示服务端暂时没有准备好处理请求。放到 AI API 中转站里,No available accounts 更具体:代理层找不到一个可用的上游账号、供应商、分组或模型通道。
这类错误和 401 不一样。401 是认证没过;503 No available accounts 往往说明认证已经过了,但后面的账号池或路由没有可用出口。
常见原因
- 中转站账号池满载,当前时段请求量高,上游账号都在冷却、限流或不可用。
- 你选择的模型触发了上游模型级限流,例如长上下文、thinking 模型或高 token 输入导致短时间冷却。
- API Key 所在分组没有绑定可用供应商,或者上游账号被分到另一个 group,导致当前 group 调度不到账号。
- 服务商设置了客户端限制,例如只允许 Claude Code 客户端调用,反代、CCSwitch、非官方客户端会被拒绝。
- 自建代理或二级中转存在路由问题:某个上游返回 no account 后,粘性会话或错误处理没有切换到其他可用账号。
排查和修复步骤
- 先等 30 到 120 秒再重试。503 本来就应该被当作临时容量问题处理,不要立刻用脚本高频重试。
- 用同一 Base URL、API Key 和模型名发一个最小请求。如果最小请求也返回 503,重点看服务商状态页、账号池、分组和模型可用性。
- 换一个更常规的模型测试,例如从高上下文、thinking、opus 或专用模型切到普通模型。若普通模型可用,问题多半是模型级容量或限流。
- 检查服务商控制台里的 API Key 分组、供应商绑定、余额、每日额度和客户端限制。不要只重新生成 Key,Key 轮换通常解决不了账号池不可用。
- 如果你在用 CCSwitch、反代或自建网关,先绕过中间层直连 provider 的 Base URL 测试一次。二级代理的会话粘滞、错误转发或 fallback 失败也会把上游短故障放大。
API 中转用户要重点看什么
先区分三个层次:你的本地工具、你配置的中转站、以及中转站背后的上游账号池。
如果 curl 最小请求成功,但 Claude Code、Codex 或 Cursor 失败,重点检查工具是否发送了超长上下文、是否选了不支持的模型、是否走了错误 profile。Coding agent 的一次请求可能包含大量历史上下文,看起来低并发,实际已经触发了模型级限流。
如果 curl 最小请求也失败,问题通常不在本地。此时更应该看 provider 的状态页、公告、客服反馈和账号池容量,而不是反复改 API Key。
什么时候该换 Provider
当最小请求持续返回 503、同一 provider 的多个模型都不可用,或服务商明确说明账号池满载时,换 provider 才有意义。
如果只有某个模型失败,先换模型或分组。如果只有某个客户端失败,先检查客户端限制和 Base URL 配置。把所有 503 都归因成“站挂了”是偷懒判断,很容易让你在多个中转站之间来回迁移,却没有解决真正的配置或上下文问题。