Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die OpenAI-API gibt insufficient_quota mit dem Fehlertyp 429 zurück, wenn Ihr Konto keine Gutschriften mehr hat oder ein Ausgaben- oder Nutzungslimit überschritten wurde. Es ist derselbe Statuscode wie ein Ratenlimit, aber das Warten einiger Sekunden wird ihn nicht beheben. Der Zugriff kommt erst zurück, wenn jemand Guthaben hinzufügt, ein Limit erhöht oder der monatliche Zeitraum zurückgesetzt wird. OpenAI sagt, dass das erneute Versuchen von Abrechnungs-, Ausgaben- oder Kontingentanfragen den API-Zugriff nicht wiederherstellt und dass Sie error.code prüfen sollten, um die spezifische Ursache zu finden. Weitere Informationen finden Sie unter Fehlercodes.
Wie die Kontingentfehler von OpenAI aussehen
Jeder dieser Fehler wird mit 429 zurückgegeben. Dies error.type kann noch immer insufficient_quota sein, also überprüfen Sie error.code, um zu erfahren, welche Variante Sie erhalten haben.
error.code |
Was dies bedeutet | So wird der Zugriff wiederhergestellt |
|---|---|---|
credit_balance_exhausted |
Ihre Organisation hat keine im Voraus bezahlten Gutschriften übrig. | Fügen Sie Guthaben hinzu. |
organization_spend_limit_exceeded |
Ihre Organisation hat ihr monatliches Ausgabenlimit für alle Projekte erreicht. | Heben oder entfernen Sie das Limit, oder warten Sie auf die monatliche Rücksetzung. |
project_spend_limit_exceeded |
Das Projekt hat sein monatliches Ausgabenlimit erreicht. Andere Projekte laufen weiter. | Erhöhen oder entfernen Sie das Limit des Projekts, oder warten Sie auf die monatliche Rücksetzung des Limits. |
organization_usage_limit_exceeded |
Ihre Organisation hat den monatlichen Nutzungsgrenzwert erreicht, den OpenAI ihr zugewiesen hat. Dies ist getrennt von den von Ihnen festgelegten Ausgabenbeschränkungen. | Fordern Sie einen höheren genehmigten Grenzwert an, oder wenden Sie sich an den OpenAI-Support. |
Vergleichen Sie diese mit „Rate limit reached“-Fehlern, wie rate_limit_exceeded und slow_down. Diese sind temporär, und ein Wiederholungsversuch nach einer kurzen Wartezeit funktioniert in der Regel. Weitere Informationen finden Sie unter OpenAI -Fehler "Rate limit reached".
Umgang mit OpenAI-Quota-Fehlern
- Lesen Sie nicht nur den Status, sondern auch
error.code. Allein429sagt Ihnen nicht, ob Sie es erneut versuchen sollten. Behandeln Sie die vier Codes in der Tabelle als „Stop“ und die Rate-Limit-Codes als „Warten und Wiederholen“. - Versuchen Sie es nicht weiter. Senden Sie die Anforderung nicht erneut, und lassen Sie eine Wiederholungsschleife nicht die API aufrufen. Bis jemand das Abrechnungsproblem behebt, schlägt jede Anforderung auf die gleiche Weise fehl.
- Halten Sie die Anrufe an, die fehlschlagen würden. Ein Kontingentfehler bedeutet, dass nachfolgende Anfragen aus derselben Organisation oder demselben Projekt ebenfalls fehlschlagen. Überspringen Sie sie, anstatt jedes einzeln zu senden und auf den Fehler zu warten.
- Teilen Sie dem Benutzer mit. Erklären Sie, dass die KI-Funktion vorerst nicht verfügbar ist, und sorgen Sie dafür, dass der Rest Ihrer App weiterhin funktioniert.
- Seien Sie wachsam. Protokollieren Sie den Fehlercode mit hoher Priorität oder benachrichtigen Sie die für die Abrechnung zuständige Person. Die Problembehebung liegt außerhalb Ihres Codes, also muss jemand davon wissen.
Das OpenAI Python SDK versucht 429-Antworten standardmäßig zweimal erneut. Egal, was erneut versucht wird, Ihr Code erhält schließlich RateLimitError mit dem Abrechnungscode, und dort beenden Sie den Vorgang:
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
Das Flag bleibt gesetzt, bis Ihre App neu startet. Setzen Sie es auf andere Weise zurück, wenn Ihre App lange läuft, z. B. durch eine Administratoraktion, nachdem jemand die Abrechnung korrigiert hat.
So testen Sie, ob Ihre App mit OpenAI-Kontingentfehlern umgehen kann
Bei der Entwicklung tritt nur selten ein Kontingentfehler auf. Ihr Testkonto hat Guthaben, und Ihre Nutzung ist gering. Also entscheidet, wie Sie den Umgang mit Kontingenten testen, ob Sie die Fehler vor Ihren Benutzern finden.
| Approach | Was Sie finden | Was Sie vermissen |
|---|---|---|
| Auf die Produktion warten | Tatsächliche Fehler | Alles funktioniert, bis ein Benutzer darauf klickt, und die KI-Funktion bleibt ausgefallen, bis es jemand bemerkt |
| Mocken Sie die API in Ihren Tests, oder lassen Sie Ihren Coding-Agenten den Mock schreiben. | Ob Ihr Stopp-Branch ausgeführt wird | Der echte Fehlertext und die Codes von OpenAI sowie die Wiederholungsrichtlinie Ihres SDK. Ihre App benötigt außerdem einen reinen Testschalter, um den Mock zu erreichen. |
| Nutzen Sie Ihr reales Guthaben, oder legen Sie ein winziges Ausgabenlimit fest. | Tatsächliches Verhalten | Es kostet Geld und blockiert jede andere App, die dieselbe Organisation bzw. dasselbe Projekt verwendet. |
| Fangen Sie den tatsächlichen Datenverkehr Ihrer App ab und geben Sie bei Bedarf Quota-Fehler zurück | Echte URLs, Ihr reales SDK, Ihre Wiederholungsrichtlinie und das eigene Fehlerformat von OpenAI | Nichts in Ihrer App ändert sich, sodass Ihr Code nicht isoliert getestet wird. Halten Sie die Unit-Tests dafür. |
Probieren Sie es in Ihrer App aus
Dev Proxy fängt die Anfragen Ihrer App an api.openai.com ab und gibt OpenAI-Fehler zurück, während Ihre App die tatsächlichen URLs aufruft. Die openai-throttling Voreinstellung mischt einen credit_balance_exhausted Fehler unter die Rate-Limit-Fehler. Sie gibt insufficient_quota mit dem Typ Retry-After und ohne 429-Kopfzeile zurück, sodass Sie überprüfen können, ob Ihre App stoppt, anstatt es erneut zu versuchen.
Laden Sie die Voreinstellung herunter, und starten Sie Dev Proxy damit:
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Um nur Kontingentfehler zu testen, bearbeiten Sie die Datei der Voreinstellung openai-errors.json , und behalten Sie nur die credit_balance_exhausted Antwort bei. Um die Ausgaben- und Nutzungsgrenzwerte zu testen, fügen Sie Antworten mit demselben Shape und einem anderen code hinzu.
Führen Sie dann Ihre App wie gewohnt aus, und beobachten Sie, was sie tut. Informationen zum Installieren von Dev Proxy finden Sie unter Einrichten von Dev Proxy.