Status 503Busy or slow upstream (503 / 504)Claude CodeCodex CLICursorClineCherry StudioopencodeSDK / curl

Fix "API Error: 503 overloaded_error" and "Repeated 529 Overloaded errors"

Error message
API Error: 503 {"type":"error","error":{"type":"overloaded_error","message":"上游线路暂时不可用,请稍后重试(不是您账户余额的问题) | Upstream temporarily unavailable, please retry shortly (this is not about your account balance)."}}

A 503 overloaded_error from CCSub means it already retried on other upstream lines and none was available at that moment. It's temporary and not billed. Wait a minute and type "continue", or switch models with /model.

Fix it in 3 steps

  1. 1

    Wait a minute, then type "continue"

    It's a temporary error and your original message is still in the conversation, so there's no need to paste a long prompt again. Claude Code has already retried several times before showing you this.

  2. 2

    Try a different model

    Use /model in Claude Code, or change the model ID in your tool's settings. Requests for different models can take different lines inside CCSub, so when one model has no free line, another one often works.

  3. 3

    Contact support if it lasts more than 10 minutes

    Email support@ccsub.net with the time of the failure (to the minute), your tool and model ID, and the full error text so the request can be located in the logs. Never include your API key.

Other forms of the same error

  • Upstream overloaded after 3 attempt(s): Our servers are currently overloaded. Please try again later.
  • API Error: Repeated 529 Overloaded errors
  • {"type":"error","error":{"type":"api_error","message":"Upstream returned invalid response"}}

Where this 503 comes from

CCSub sits in front of several upstream lines. When a request fails, it doesn't hand the error straight to you — it tries to recover first:

  • On a 5xx, a timeout, or an "overloaded" response, it moves the request to another account or line for the same model and retries.
  • Some upstreams signal overload by returning 200 and then putting an error inside the stream. CCSub detects that pattern and fails over the same way.
  • Lines that keep failing are temporarily marked down so later requests route around them.

You only get a 503 after those retries are used up and there's genuinely no line available at that moment. In other words, it means "this model is short on capacity right now", and it usually clears within minutes.

What each message means

  • 上游线路暂时不可用,请稍后重试(不是您账户余额的问题) — "Upstream temporarily unavailable, please retry shortly (this is not about your account balance)." The English translation is included in the message itself. An upstream line's account had a problem, such as its own balance, and CCSub replaced the raw error with this one.
  • Upstream overloaded after N attempt(s): ... — the upstream reported overload, and CCSub tried N accounts that were all overloaded.
  • API Error: Repeated 529 Overloaded errors — Claude Code's own message after receiving several 529s in a row and exhausting its retries.
  • 502 Upstream returned invalid response and 500 Internal proxy error — the upstream sent back something unparseable, or something unexpected happened while handling the request. Treat these exactly like a 503 and retry.

None of these are billed. Only requests that complete successfully are charged.

The fastest way to get going again

  1. Wait a minute or two, then type "continue". The Claude Code docs recommend the same thing: your original message is still in the conversation, so you don't need to paste a long prompt again.
  2. Switch models. Use /model, or change the model ID in Codex, Cursor, or whichever tool you use. Different models can run on different lines, so when one model has nothing free, another usually does.
  3. Break long tasks up. If one very long turn fails, the whole turn has to be redone. Smaller steps make each failure cheaper.
  4. Back off in your own code. On 502, 503 or 529, wait a few seconds, double the delay after each failure, and give up after three to five attempts with a clear message to the user. Retrying in a tight loop will also hit the 429 rate limit.

When to contact support

If the same model returns 503 for more than ten minutes straight, or every model fails, email support@ccsub.net and include:

  • The time it happened, to the minute.
  • Your tool and version (claude --version or codex --version).
  • The model ID and the full error text.
  • Your account email — never your API key.

With the time and model, support can find the exact failed request in the logs.

FAQ

Why does the message say "this is not about your account balance"?

When an upstream line's own account has a problem such as running out of credit, CCSub doesn't pass the raw upstream text (like an English Insufficient Balance) through to you. It rewrites it into this 503 so you don't think your own balance is empty. Your account is unaffected.

Am I charged for 503s?

No. Only requests that return a successful result are billed.

Why did Claude Code take so long to show the error?

Claude Code retries server errors like 5xx and 529 up to 10 times by default with growing delays, showing Retrying in Ns · attempt x/10. You only see the error once all of those fail.

Should I script unlimited retries?

No. Hammering the endpoint doesn't bring capacity back sooner and can trip the default limit of 60 requests per minute per key, which gets you a 429 instead. Wait at least a few seconds between attempts and back off further each time.

Still stuck?

New to CCSub?

Sign up, create an API key in the dashboard, and paste it into Claude Code, Codex CLI or your editor. You pay for what you use.