Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
OpenAI API returnerar 429 med feltypen insufficient_quota när ditt konto hade slut på krediter eller gick över en utgifts- eller användningsgräns. Det är samma statuskod som vid en frekvensbegränsning, men att vänta några sekunder löser det inte. Åtkomsten kommer tillbaka först när någon har lagt till krediter, höjer en gräns eller den månatliga perioden återställs. OpenAI säger att att försöka igen efter fakturerings-, utgifts- eller kvotfel inte återställer API-åtkomsten och att du bör inspektera error.code för att hitta den specifika orsaken. Mer information finns i Felkoder.
Hur OpenAI:s kvotfel ser ut
Var och en av dessa fel returnerar 429.
error.type kan fortfarande vara insufficient_quota, så kontrollera error.code för att se vilken du fick.
error.code |
Vad det innebär | Så här återfår du åtkomsten |
|---|---|---|
credit_balance_exhausted |
Din organisation har inga förbetalda krediter kvar. | Lägg till krediter. |
organization_spend_limit_exceeded |
Din organisation har nått sin månatliga utgiftsgräns sammanlagt för alla projekt. | Höj eller ta bort gränsen eller vänta på den månatliga återställningen. |
project_spend_limit_exceeded |
Projektet nådde sin månatliga utgiftsgräns. Andra projekt fortsätter att fungera. | Höj eller ta bort projektets gräns eller vänta på den månatliga nollställningen. |
organization_usage_limit_exceeded |
Din organisation nådde den månatliga användningsgräns som OpenAI tilldelade den. Den är skild från de utgiftsgränser som du anger. | Begär en högre godkänd gräns eller kontakta OpenAI-supporten. |
Jämför dessa med fel som "Gränsen för begäranden har uppnåtts", till exempel rate_limit_exceeded och slow_down. De är tillfälliga och ett nytt försök efter en kort väntan fungerar vanligtvis. Mer information finns i OpenAI-fel med "hastighetsgränsen har nåtts".
Hantera OpenAI-kvotfel
- Läs
error.code, inte bara statusen. En429ensam talar inte om för dig om du ska försöka igen. Behandla de fyra koderna i tabellen som "stopp" och koderna för hastighetsbegränsning som "vänta och försök igen". - Avbryt nya försök. Skicka inte begäran igen och låt inte en återförsöksloop fortsätta anropa API:et. Till dess att någon åtgärdar faktureringsproblemet, misslyckas varje begäran på samma sätt.
- Pausa anropen som skulle misslyckas. Ett kvotfel innebär att nästa begäranden från samma organisation eller projekt också misslyckas. Hoppa över dem i stället för att skicka var och en och vänta på felmeddelandet.
- Berätta för användaren. Förklara att AI-funktionen inte är tillgänglig för tillfället och se till att resten av appen fungerar.
- Varna dig själv. Logga koden med hög allvarlighetsgrad, eller kontakta den som ansvarar för faktureringen. Korrigeringen ligger utanför koden, så någon behöver veta.
OpenAI-Python SDK försöker igen för 429-svar 2 gånger som standard. Oavsett hur många gånger den försöker igen får din kod så småningom RateLimitError med faktureringskoden, och det är där du slutar:
import logging
import openai
from openai import OpenAI
client = OpenAI()
logger = logging.getLogger(__name__)
BILLING_CODES = {
"credit_balance_exhausted",
"organization_spend_limit_exceeded",
"project_spend_limit_exceeded",
"organization_usage_limit_exceeded",
}
billing_error: str | None = None
def ask(prompt: str) -> str:
global billing_error
if billing_error:
raise RuntimeError("AI features are paused until billing is fixed.")
try:
response = client.responses.create(model="gpt-4.1", input=prompt)
return response.output_text
except openai.RateLimitError as error:
if error.code in BILLING_CODES:
billing_error = error.code
logger.critical("OpenAI billing error: %s", error.code)
raise
Flaggan förblir inställd tills appen startas om. Rensa det på ett annat sätt om din app körs under lång tid, till exempel med en administratörsåtgärd efter att någon har korrigerat faktureringen.
Så här testar du att din app hanterar OpenAI-kvotfel
Du ser sällan ett kvotöverskridningsfel när du utvecklar. Ditt testkonto har krediter och din användning är låg. Så sättet du testar kvothanteringen på avgör om du hittar buggarna innan användarna gör det.
| Approach | Det här hittar du | Vad du saknar |
|---|---|---|
| Vänta på produktion | Faktiska fel | Allt, tills en användare utlöser den, och AI-funktionen förblir nere tills någon märker det |
| Mocka API:et i dina tester eller låt kodningsagenten skriva mock | Om din stop branch körs | OpenAIs verkliga feltext och koder och din SDK:s återförsöksprincip. Din app behöver också en testomkopplare för att nå mocken. |
| Använd dina riktiga krediter eller ange en liten utgiftsgräns | Faktiskt beteende | Det kostar pengar och blockerar alla andra appar som delar organisationen eller projektet |
| Fånga upp appens verkliga trafik och returnera kvotfel på begäran | Verkliga URL:er, din riktiga SDK och återförsöksprincip och OpenAI:s eget felformat | Ingenting i din app ändras, så din kod testas inte isolerat. Använd enhetstester för det. |
Prova det i din app
Dev Proxy fångar upp appens begäranden till api.openai.com och returnerar OpenAI-fel, medan appen fortsätter att anropa de verkliga URL:erna. Förinställningen openai-throttling blandar ett credit_balance_exhausted fel i med fel för hastighetsbegränsning. Den returnerar 429 med typ insufficient_quota och ingen Retry-After-header, så du kan kontrollera att din app slutar i stället för att försöka igen.
Ladda ned förinställningen och starta Dev Proxy med den:
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Om du bara vill testa kvotfel redigerar du förinställningens openai-errors.json fil och behåller endast svaret credit_balance_exhausted . Om du vill testa utgifts- och användningsgränskoderna lägger du till svar med samma struktur och en annan code.
Kör sedan appen som vanligt och se vad den gör. Information om hur du installerar Dev Proxy finns i Set up Dev Proxy.