Für KI-Agenten: Schritt-für-Schritt-Anleitung zur Einrichtung — /docs/agents.md, Dokumentationsindex — /llms.txt.

Fehler und Limits

Anfragelimits, Timeouts und Fehlercodes des Gateways. Zu jeder Antwort steht, wann sie auftritt und was zu tun ist: Anfrage wiederholen oder korrigieren.

Limits#

Die Zahlen stammen aus dem Feld limits der Antwort von GET /v1/capabilities: dort stehen immer die aktuellen Werte.

LimitWertBei Überschreitung
Anfragen pro Minute pro Schlüssel120, Fenster 60 s ab der ersten Anfrage429 rate_limit_exceeded und Header Retry-After; 5xx-Ablehnungen des Gateways verbrauchen kein Kontingent
Gleichzeitige Anfragen des Kontosbegrenztüberzählige warten in der Warteschlange; wer nicht wartet — 429 queue_timeout
Größe des Anfrage-Bodys16 MiB413
Antwortlängeje Modell — Tabelle untengrößer als die Obergrenze des Modells — wird ohne Fehler auf die Obergrenze gekürzt
Untergeordnete Schlüsselbis zu 50 pro Verwaltungsschlüssel, bis zu 120 Anfragen pro Minute für jedenObergrenzen anheben — über den Support

Antwortlänge je Modell#

Ohne max_tokens setzt das Gateway den Standardwert ein: ohne Streaming — kürzer, damit die Antwort in die Timeouts passt, im Stream — die Obergrenze des Modells. max_completion_tokens — dasselbe Feld.

modelObergrenzeOhne StreamingIm Stream
MiniMaxAI/MiniMax-M2.7819215008192
deepseek-ai/DeepSeek-V4-Flash-073132768150032768
zai-org/GLM-5.3-Flash819230008192

Timeouts#

PhaseWertWas passiert
Warten auf einen Platz in der Warteschlange45 s429 queue_timeout mit Header Retry-After: 1
Beginn der Antwort des Netzwerks, Stream150 s504 upstream_timeout; die Schätzung der Eingabe-Tokens wird abgebucht
Beginn der Antwort des Netzwerks, ohne Streaming150 s504 upstream_timeout; die Schätzung der Eingabe-Tokens wird abgebucht
Generierung der Antwort≈ 300 sdas Netzwerk bricht die Generierung ab: die Antwort kommt mit finish_reason: length — setzen Sie mit der nächsten Anfrage fort
Pause zwischen den Chunks des Streams30 sder Stream wird geschlossen: finish_reason: stop im Chunk joingonka-stream-stalled
Aktivitätssignal im Stream15 sKommentar : keep-alive — SSE-Clients überspringen ihn
Öffnen des Streams30 sbis zu diesem Moment kommt die Ablehnung als Antwortcode, danach als Chunk joingonka-error
Frühe Antwort ohne Streaming90 sdas Gateway liefert 200 und sendet alle 15 s Leerzeichen — das JSON bleibt gültig; ein Fehler danach kommt im Body mit dem Feld error, der Status bleibt 200

Was bei einem Timeout abgebucht wird

Eine vom Netzwerk angenommene Anfrage kann nicht storniert werden. Bei 504 upstream_timeout wird die Schätzung der Eingabe-Token abgebucht, die Ausgabe-Token nicht; ein erneuter Versuch ist eine neue Abbuchung. Ein Stream, der vor dem abschließenden usage abbricht, wird genauso abgerechnet. Fordern Sie lange Antworten mit stream: true an.

Fehlercodes#

Der Fehlertext ist ein Objekt error mit den Feldern message, type, code, param; einige Felder sind nicht bei allen Fehlern vorhanden. Orientieren Sie sich am Status und type, prüfen Sie code: der Text message kann sich ändern. Das Anthropic-Format finden Sie im Abschnitt Format der Anthropic-Fehler.

JSON
{
  "error": {
    "message": "Model is currently overloaded in the Gonka network",
    "type": "rate_limit_exceeded",
    "code": "upstream_rate_limited"
  }
}
AntwortWannWas zu tun ist
400 invalid_request_errorUngültiger Body: kein messages, Nachricht ist kein Objekt, Body ist kein JSON; unbekanntes Modell — mit param: model und einer Liste verfügbarer Modelle im TextKorrigieren Sie die Anfrage anhand des Fehlertexts
400 invalid_request_error empty_content_after_normalizationNachricht ist nach der Normalisierung leer — zum Beispiel enthielt sie nur ein BildFügen Sie der Nachricht Text hinzu
400 invalid_request_error web_search_privacy_sanitization_not_supportedPlugins web und privacy-sanitization in einer AnfrageBehalten Sie eines davon
400 invalid_request_error previous_response_id_not_supported conversation_not_supported item_reference_not_supported background_not_supported hosted_tool_choice_not_supportedOpenAI Responses: Verweis auf eine gespeicherte Antwort, einen Dialog oder ein Element; Hintergrundmodus; Anforderung eines integrierten ToolsSenden Sie den gesamten Verlauf in input
400 api_errorDas Netzwerk hat die Parameter abgelehnt — zum Beispiel liegt der Wert reasoning_effort außerhalb seiner ListeKorrigieren Sie den Wert anhand des Fehlertexts
401 authentication_errorSchlüssel nicht gefunden, widerrufen oder mit unbekanntem FormatPrüfen Sie den Schlüssel auf der Seite gate.joingonka.ai/keys
402 insufficient_fundsDas Guthaben reicht nicht für die Schätzung der Anfrage; der Rest steht in balance_ngonkaLaden Sie Ihr Guthaben auf: gate.joingonka.ai/billing
402 insufficient_fundsAnfrage ohne Schlüssel, nicht von der Website (is_demo: true)Übergeben Sie einen API-Schlüssel
402 child_key_limit_exceededDas Ausgabenlimit des Schlüssels ist überschritten — täglich, monatlich oder gesamt; die Restbeträge stehen in daily_remaining, monthly_remaining, total_remainingErhöhen Sie das Limit des Schlüssels auf der Seite gate.joingonka.ai/keys oder warten Sie auf den Reset
403 forbiddenVerwaltungsschlüssel gm- in einer Anfrage an ein Modell; API-Schlüssel auf einer nur für das Dashboard bestimmten RouteFür Anfragen — Schlüssel jg- oder gc-; Kontoverwaltung — im Dashboard
404 invalid_request_error model_not_foundGET /v1/models/{model}: das Modell ist nicht im Katalog oder vorübergehend ausgeblendetNehmen Sie die id aus GET /v1/models
404 invalid_request_error not_found compact_not_supportedOpenAI Responses: /v1/responses/{id} und andere State-Adressen, /v1/responses/compactVerwalten Sie den Verlauf selbst; für die Codex CLI legen Sie eine eigene Provider-id fest
404 invalid_request_errorUnbekannter PfadPrüfen Sie Methode, Pfad und Basisadresse
413 invalid_request_errorDer Request-Body überschreitet das LimitKürzen Sie die Anfrage
415 invalid_request_errorDer Body ist laut Header kein JSON: Content-Type: application/json erforderlichSenden Sie Content-Type: application/json
429 rate_limit_exceededDie Anzahl der Anfragen pro Minute pro Schlüssel ist überschritten; im Body — rate_limit mit limit, remaining, resetWarten Sie so viele Sekunden, wie in Retry-After angegeben
429 rate_limit_exceeded upstream_rate_limitedDas Modell ist im Gonka-Netzwerk überlastetWiederholen Sie nach Retry-After oder nehmen Sie ein anderes Modell — Modelle
429 rate_limit_exceeded queue_timeout queue_fullAlle Plätze im Netzwerk sind belegt: die Warteschlange ist voll oder die Wartezeit ist abgelaufenWiederholen Sie nach Retry-After
500 server_errorInterner Fehler des GatewaysWiederholen Sie später; tritt es erneut auf, schreiben Sie an den Support und fügen Sie x-request-id bei
501 not_implementedPOST /v1/embeddings: im Netzwerk gibt es keine Embedding-ModelleNutzen Sie einen anderen Embedding-Dienst
502 api_error upstream_unauthorizedDer Provider des Netzwerks hat die Anmeldedaten des Gateways abgelehnt — Ihr Schlüssel ist in OrdnungWiederholen Sie in einer Minute
502 api_errorFehler im Gonka-Netzwerk; code stammt vom Netzwerk, falls es ihn gesendet hatWiederholen Sie mit einer Pause oder nehmen Sie ein anderes Modell
503 model_unavailable model_outage model_initializing model_unstable model_not_servedDas Modell ist derzeit laut Netzwerk-Proben nicht verfügbar: Ausfall, Start, Instabilität oder niemand betreibt es; sofortige Ablehnung, ohne WartenNehmen Sie ein anderes Modell — der Fehlertext verrät welches; die Liste — Modelle
503 service_unavailableKeine verfügbaren NodesWiederholen Sie später
504 timeout upstream_timeoutDas Netzwerk hat die Anfrage angenommen, aber nicht rechtzeitig geantwortet; die Schätzung der Eingabe-Token wurde abgebuchtFür lange Antworten — stream: true; ein erneuter Versuch ist eine neue Abbuchung

Fehler in einem geöffneten Stream#

Solange der Stream nicht geöffnet ist, kommt die Ablehnung mit dem üblichen Antwortcode — wie ohne Streaming. Nach dem Öffnen ist der Status bereits 200, und der Fehler kommt so:

  • Chat Completions — Chunk joingonka-error mit Feld error, dann Abbruch ohne [DONE].
  • Ohne Streaming nach einer frühen Antwort — Status 200 und Body mit Feld error.
  • Anthropic Messages — Event event: error, dann wird der Stream geschlossen.
  • OpenAI Responses — Event response.failed, Ursache in response.error.code.
  • Legacy Completions — data: {"error": …}, dann [DONE].
SSE
data: {"id":"joingonka-error","object":"chat.completion.chunk","model":"MiniMaxAI/MiniMax-M2.7","choices":[],"error":{"message":"Gonka network error","type":"api_error"}}

Format der Anthropic-Fehler#

  • POST /v1/messages antwortet mit einem Anthropic-Envelope: {"type": "error", "error": {"type", "message"}}.
  • Gateway-Ablehnungen behalten type aus der Tabelle oben (insufficient_funds, model_unavailable und andere); das Feld code gibt es in diesem Envelope nicht — die Ursache steht im Text.
  • Fehler im Anfrageformat — invalid_request_error: keine Nachrichten oder max_tokens, Tool-Aufruf ohne Namen, unbekanntes Modell.
  • Unbekannter Pfad — not_found_error, zu großer Body — request_too_large.
SSE
event: error
data: {"type":"error","error":{"type":"timeout","message":"Upstream timeout"}}

Was sich wiederholen lässt#

  • Nach einer Pause aus Retry-After: 429
  • Mit wachsender Pause — 1, 2, 4 s und weiter: 500, 502, 503 service_unavailable, 504
  • Mit einem anderen Modell: 503 model_unavailable
  • Nicht unverändert wiederholen — korrigieren Sie Anfrage, Schlüssel oder Guthaben: 400, 401, 402, 403, 404, 413, 415, 501

Jede Wiederholung nach 504 ist eine neue Abbuchung der Eingabe-Schätzung; für lange Antworten aktivieren Sie stream: true.

Der Fehler tritt erneut auf — schreiben Sie an den Support und fügen Sie x-request-id aus den Antwort-Headern bei.