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 nie ma statusu oznaczającego „skończyły ci się pieniądze”. 402 Payment Required istnieje, ale prawie nikt go nie używa, więc bramki używają 429 zarówno do rozliczeń, jak i do ograniczania ruchu. W praktyce to przeciwieństwa: jedno trwa, dopóki czegoś nie zrobisz, drugie jest chwilowe i mija samo.
To ważne, bo większość mechanizmów ponawiania w SDK patrzy tylko na kod statusu. Klient OpenAI dla Pythona domyślnie ponawia 429. Skieruj go na bramkę z pustym saldem, a wypali cały budżet ponowień na zapytaniu, które nie może się udać, i na koniec zgłosi timeout – a ty zaczniesz szukać problemu z siecią, którego nie ma.
Jest też trzecia przyczyna, którą warto znać, bo wygląda jak druga, a naprawia się ją inaczej: limit równoległych zapytań na konto. Komunikat mówi o nim wprost — Concurrency limit exceeded for user, please retry later. Tu nie chodzi o to, ile zapytań wysłałeś w ciągu minuty, tylko ile było w toku w tej samej chwili. Odczekanie pomaga, ale właściwym rozwiązaniem jest ograniczenie równoległości w kliencie; to jej zwiększenie wywołało błąd.
Wyślij jedno zapytanie i spójrz na treść zamiast na status:
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
Kod lub komunikat ze słowami quota, balance albo credit oznacza rozliczenia. Wszystko ze słowami rate, busy albo upstream oznacza ograniczenie ruchu. Jeśli treść jest pusta, sprawdź nagłówek Retry-After – jego obecność wskazuje na ograniczenie ruchu.
{"code":"API_KEY_QUOTA_EXHAUSTED"}; przeciążenie upstreamu zwraca {"error":{"type":"api_error","message":"Upstream rate limit exceeded, please retry later"}}. Saldo widzisz w panelu, a doładowania działają od razu.Ostatnio sprawdzono 2026-10-01. Napisane na podstawie problemów zdiagnozowanych na działającej bramce zgodnej z OpenAI, a nie zebrane z innych stron.