Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Claude API vrací 529 s typem chyby overloaded_error, když je API dočasně přetížené. Podle Anthropic k tomu může dojít, když rozhraní API zaznamená vysoký provoz napříč všemi uživateli. Vaše žádost je v pořádku. Rozhraní API je zaneprázdněné, takže žádost byla odmítnuta. Když vaše organizace překročí vlastní limity sazeb, získáte místo toho 429. Tělo odpovědi má stejný tvar jako každá jiná chyba rozhraní Claude API: nejvyšší úroveň typeerrorobjektu error s type a messagea request_id můžete poskytnout podporu Anthropic. Další informace najdete v tématu Chyby rozhraní Clauda API.
529, 429 nebo limit výdajů: jak je rozlišit
Rozhraní Claude API používá podobné chyby pro velmi různé problémy. Některé zmizí, když počkáte. To nezmizí až do příštího měsíce.
| Response | error.type |
retry-after |
Co to znamená | Co dělat |
|---|---|---|---|---|
529 |
overloaded_error |
Použijte ho, pokud tam je | Rozhraní API je přetížené pro všechny uživatele. | Počkejte a zkuste to znovu několikrát. |
429 |
rate_limit_error |
Yes | Vaše organizace prošla svými požadavky, vstupními tokeny nebo výstupními tokeny za minutu nebo se příliš rychle zrychli a dosáhla limitu zrychlení. | Počkejte tak dlouho, jak uvádí retry-after |
429 |
rate_limit_error, s error.details.error_code nastaveným na enforced_spend_limit_reached |
No | Vaše organizace dosáhla měsíčního limitu útraty ve vašem tarifu využití. | Nezkoušejte to znovu. Využití se pozastaví do 00:00 UTC prvního dne následujícího měsíce nebo dokud nepřejdete na vyšší úroveň. |
400 |
invalid_request_error |
No | Dosáhli jste limitu výdajů, který jste nastavili ve své organizaci nebo pracovním prostoru | Zvyšte nebo odeberte limit |
Chyba 429 kvůli limitu útraty má stejný typ chyby jako omezení rychlosti, takže kód, který opakuje pokus každé rate_limit_error, stále selhává. Anthropic uvádí, že opakované pokusy selžou, dokud se neobnoví přístup, včetně automatického opakování sady SDK. Podrobnosti najdete v článku Dosažení limitu výdajů.
Jak pracovat s 529
- Před opakováním zkontrolujte stavový kód.
529a429vyžadují různé čekací doby a429bezretry-afternevyžaduje vůbec žádné opakování. - Omezte příspěvky do plánu 529. Zkuste to znovu s exponenciální prodlevou a náhodným zpožděním a po několika pokusech přestaňte. Pokud má odpověď hlavičku
retry-after, počkejte místo toho po tuto dobu. - Nechte SDK provést první opakované pokusy.
Oficiální sady SDK Anthropic ve výchozím nastavení opakují chyby připojení, omezení rychlosti a chyby 5xx dvakrát, s exponenciálním zpožděním a respektují
retry-after, pokud je přítomen. Počet můžete změnit pomocímax_retries(maxRetriesv TypeScriptu). Když sada SDK skončí s opakovanými pokusy, váš kód obdrží chybu. - Zastavte opakované pokusy při dosažení limitu útraty. Pokud odpověď 429 nemá žádnou
retry-afterhlavičku, řekněte to uživateli a upozorněte sami sebe. - Informujte uživatele. Zařaďte práci do fronty a zkuste to znovu později, nebo místo obecné chyby zobrazte jasnou zprávu „Systém je vytížený, zkuste to znovu za minutu“.
V sadě Python SDK kód 429 vyvolá anthropic.RateLimitError a jakýkoli stav 500 nebo vyšší, včetně 529, vyvolá anthropic.InternalServerError:
import anthropic
client = anthropic.Anthropic(max_retries=4)
def summarize(text: str) -> str | None:
try:
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": f"Summarize:\n\n{text}"}],
)
except anthropic.RateLimitError as e:
if "retry-after" not in e.response.headers:
# Spend cap: every retry fails until access resumes
alert_admin(e)
return None
raise
except anthropic.InternalServerError as e:
if e.status_code == 529:
# Overloaded after all SDK retries: queue the job for later
queue_for_later(text)
return None
raise
return next(block.text for block in message.content if block.type == "text")
Jak otestovat, že aplikace zpracovává chybu 529
Na chybu 529 při vývoji narazíte jen zřídka. Závisí to na síťovém provozu od každého uživatele Claude API, takže to nemůžete vyvolat. Způsob, jakým testujete, rozhoduje o tom, jestli chyby zjistíte dříve, než je najdou vaši uživatelé.
| Approach | Co najdete | Co vám chybí |
|---|---|---|
| Počkejte na produkční prostředí | Skutečná přetížení | Vše, dokud na něj uživatel neklikne |
| Namockujte API v testech nebo nechte programovacího agenta napsat mock | Jestli se spouští vaše chybová větev | Skutečné stavové kódy a těla chyb služby Anthropic a zásady opakování vaší sady SDK. Vaše aplikace také potřebuje testovací přepínač pro přístup k mocku. |
| Volejte skutečné rozhraní API, dokud se nezdaří | Skutečné chování | Na vyžádání nemůžete vyvolat chybu 529 a limit útraty nemůžete bezpečně vyvolat vůbec. |
| Zachyťte skutečný provoz vaší aplikace a vraťte 529 a 429 na vyžádání | Skutečné adresy URL, vaše skutečné SDK, strategie opakování a vlastní formát chyb společnosti Anthropic | V aplikaci se nic nemění, takže netestuje váš kód samostatně. Na to si nechte jednotkové testy. |
Vyzkoušejte si ji v aplikaci
Dev Proxy zachytává požadavky vaší aplikace na https://api.anthropic.com a vrací chyby ve formátu chyb Anthropic, zatímco vaše aplikace pořád volá skutečnou adresu URL. Stáhněte si předvolbu a spusťte Dev Proxy:
devproxy config get anthropic-throttling
devproxy --config-file "~dataFolder/configs/anthropic-throttling/.devproxy/devproxyrc.json"
| Preset | Co vrací |
|---|---|
anthropic-throttling |
Náhodně 1 ze 4 429 rate_limit_error odpovědí (požadavky, vstupní tokeny, výstupní tokeny a limit zrychlení) nebo odpověď 529 overloaded_error. U odpovědí 429 nastaví retry-after Dev Proxy a řekne vám, kdy vaše aplikace znovu volá rozhraní API příliš brzy. |
anthropic-random-errors |
Náhodně jedna z chyb ze seznamu chyb rozhraní Clauda API, včetně chyb 400, 401, 402, 403, 404, 409, 413, 429, 500, 504 a 529 pro 50% požadavků |
Žádná předvolba nezahrnuje limit útraty 429. Chcete-li tento postup otestovat, přidejte do souboru anthropic-errors.json předvolby odpověď bez hlavičky retry-after:
{
"statusCode": 429,
"headers": [
{ "name": "content-type", "value": "application/json" }
],
"body": {
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "You have reached your API usage limits.",
"details": { "error_code": "enforced_spend_limit_reached" }
}
}
}
Aby každá žádost selhala, abyste viděli, co se stane, když sada SDK vyčerpá opakované pokusy, spusťte Dev Proxy pomocí --failure-rate 100. Další informace najdete v tématu Četnost selhání žádostí o změnu. Pokud chcete nainstalovat Dev Proxy, přečtěte si téma Nastavení Dev Proxy.