429 Too Many Requests{"code":"API_KEY_QUOTA_EXHAUSTED"}{"error":{"message":"Upstream rate limit exceeded, please retry later"}}A client with automatic retry that never stops retryingInsufficient account balanceConcurrency limit exceeded for user, please retry laterAll available accounts are currently rate-limited. Please retry later.HTTP non ha uno stato che significhi «hai finito i soldi». 402 Payment Required esiste ma non si usa quasi mai, quindi i gateway sovraccaricano il 429 sia per la fatturazione sia per la limitazione. I due casi sono opposti in tutto ciò che conta: uno è permanente finché non intervieni, l'altro è transitorio e si risolve da solo.
È importante perché la maggior parte dei meccanismi di retry degli SDK si basa solo sul codice di stato. Il client Python di OpenAI ritenta i 429 per impostazione predefinita. Puntalo su un gateway con saldo esaurito e consumerà tutti i tentativi su una richiesta che non può riuscire, per poi mostrare un timeout: e tu andrai a cercare un problema di rete che non esiste.
C'è una terza causa da conoscere, perché assomiglia alla seconda e si risolve in modo diverso: un limite di concorrenza per account. Il messaggio lo dice esplicitamente — Concurrency limit exceeded for user, please retry later. Non riguarda quante richieste hai inviato in un minuto, ma quante erano in corso nello stesso momento. Aspettare aiuta, ma la vera soluzione è limitare il parallelismo nel tuo client; è stato aumentarlo a causare l'errore.
Fai una richiesta e guarda il corpo invece dello stato:
curl -s -o /tmp/r.json -w '%{http_code}\n' \
'YOUR_BASE_URL/chat/completions' \
-H 'Authorization: Bearer YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"model":"YOUR_MODEL","messages":[{"role":"user","content":"hi"}],"max_tokens":1}'
cat /tmp/r.json
Un codice o un messaggio che cita quota, balance o credit indica fatturazione. Tutto ciò che cita rate, busy o upstream indica limitazione. Se il corpo è vuoto, cerca l'header Retry-After: la sua presenza indica limitazione.
{"code":"API_KEY_QUOTA_EXHAUSTED"}; la congestione dell'upstream restituisce {"error":{"type":"api_error","message":"Upstream rate limit exceeded, please retry later"}}. Il tuo saldo è nella dashboard, e le ricariche si applicano subito.Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.