429 Too Many Requests with no obvious patternRetries make the problem worseOnly some requests fail while others succeed at the same momentRate limiting under a load that used to be fineI provider misurano più dimensioni contemporaneamente: richieste al minuto, token al minuto e a volte richieste simultanee. Raggiungere il limite di token restando ben sotto quello di richieste è il motivo per cui falliscono «solo alcune richieste».
I limiti di token contano ciò che invii più ciò che riservi. Poche richieste con un max_tokens elevato possono esaurire il budget di token al minuto mentre il numero di richieste sembra irrisorio.
Contano anche i retry immediati. Un ciclo di retry serrato trasforma una pausa di un secondo in un blocco prolungato, ed è di solito così che un 429 passeggero diventa permanente.
Quando ricevi un 429, stampa gli header invece del corpo:
curl -s -D- -o /dev/null -X POST 'YOUR_BASE_URL/chat/completions' \
-H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
-d '{"model":"MODEL","messages":[{"role":"user","content":"hi"}]}' \
| grep -i 'retry-after\|ratelimit\|^HTTP'
Rispetta Retry-After quando è presente. Quando manca, un backoff esponenziale con jitter che parte da circa un secondo è il valore predefinito sicuro.
Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.