Per gli agenti AI: guida passo passo alla configurazione — /docs/agents.md, indice della documentazione — /llms.txt.

Errori e limiti

Limiti di richieste, timeout e codici di errore del gateway. Per ogni risposta è indicato quando si verifica e cosa fare: ripetere la richiesta o correggerla.

Limiti#

I numeri provengono dal campo limits della risposta GET /v1/capabilities: lì i valori sono sempre aggiornati.

LimiteValoreIn caso di superamento
Richieste al minuto per chiave120, finestra di 60 s dalla prima richiesta429 rate_limit_exceeded e header Retry-After; i rifiuti 5xx del gateway non consumano la quota
Richieste simultanee dell'accountlimitatequelle in eccesso attendono in coda; se non arrivano in tempo — 429 queue_timeout
Dimensione del body della richiesta16 MiB413
Lunghezza della rispostaper modello — tabella qui sottooltre il tetto del modello — viene tagliata al tetto, senza errore
Chiavi figliefino a 50 per chiave di gestione, fino a 120 richieste al minuto ciascunaper alzare i tetti — tramite l'assistenza

Lunghezza della risposta per modello#

Senza max_tokens il gateway applica il valore predefinito: senza streaming — più corto, così la risposta rientra nei timeout; nello streaming — il tetto del modello. max_completion_tokens — lo stesso campo.

modelTettoSenza streamingNello streaming
MiniMaxAI/MiniMax-M2.7819215008192
deepseek-ai/DeepSeek-V4-Flash-073132768150032768
zai-org/GLM-5.3-Flash819230008192

Timeout#

FaseValoreCosa succede
Attesa di un posto in coda45 s429 queue_timeout con header Retry-After: 1
Inizio della risposta della rete, streaming150 s504 upstream_timeout; viene addebitata la stima dei token di input
Inizio della risposta della rete, senza streaming150 s504 upstream_timeout; viene addebitata la stima dei token di input
Generazione della risposta≈ 300 sla rete interrompe la generazione: la risposta arriva con finish_reason: length — continua con la richiesta successiva
Pausa tra i chunk dello streaming30 sil flusso viene chiuso: finish_reason: stop nel chunk joingonka-stream-stalled
Segnale di attività nello streaming15 scommento : keep-alive — i client SSE lo ignorano
Apertura del flusso30 sfino a questo momento il rifiuto arriva con un codice di risposta, dopo — con il chunk joingonka-error
Risposta anticipata senza streaming90 sil gateway invia 200 e ogni 15 s manda spazi — il JSON resta valido; un errore successivo arriva nel body con il campo error, lo stato resta 200

Cosa viene addebitato in caso di timeout

Una richiesta accettata dalla rete non può essere annullata. Con 504 upstream_timeout viene addebitata la stima dei token di input, mentre i token di output no; un nuovo tentativo comporta un nuovo addebito. Anche uno stream interrotto prima del usage finale viene fatturato allo stesso modo. Per le risposte lunghe richiedi stream: true.

Codici di errore#

Il corpo dell'errore è un oggetto error con i campi message, type, code, param; alcuni campi non sono presenti in tutti gli errori. Fai riferimento allo stato e a type, verifica con code: il testo di message può cambiare. Il formato Anthropic è nella sezione Formato degli errori Anthropic.

JSON
{
  "error": {
    "message": "Model is currently overloaded in the Gonka network",
    "type": "rate_limit_exceeded",
    "code": "upstream_rate_limited"
  }
}
RispostaQuandoCosa fare
400 invalid_request_errorCorpo non valido: manca messages, il messaggio non è un oggetto, il corpo non è JSON; modello sconosciuto — con param: model e l'elenco dei modelli disponibili nel testoCorreggi la richiesta seguendo il testo dell'errore
400 invalid_request_error empty_content_after_normalizationMessaggio vuoto dopo la normalizzazione — ad esempio conteneva solo un'immagineAggiungi del testo al messaggio
400 invalid_request_error web_search_privacy_sanitization_not_supportedPlugin web e privacy-sanitization nella stessa richiestaLascia solo uno dei due
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: riferimento a una risposta salvata, a una conversazione o a un elemento; modalità in background; richiesta di uno strumento integratoInvia l'intera cronologia in input
400 api_errorLa rete ha rifiutato i parametri — ad esempio un valore di reasoning_effort fuori dalla sua listaCorreggi il valore seguendo il testo dell'errore
401 authentication_errorChiave non trovata, revocata o dal formato sconosciutoControlla la chiave nella pagina gate.joingonka.ai/keys
402 insufficient_fundsIl saldo non copre la stima della richiesta; il residuo è in balance_ngonkaRicarica il saldo: gate.joingonka.ai/billing
402 insufficient_fundsRichiesta senza chiave e non dal sito (is_demo: true)Passa la API key
402 child_key_limit_exceededSuperato il limite di spesa della chiave — giornaliero, mensile o totale; i residui sono in daily_remaining, monthly_remaining, total_remainingAlza il limite della chiave nella pagina gate.joingonka.ai/keys oppure attendi il reset
403 forbiddenChiave di gestione gm- in una richiesta al modello; API key su un percorso riservato alla dashboardPer le richieste usa la chiave jg- o gc-; per gestire l'account usa la dashboard
404 invalid_request_error model_not_foundGET /v1/models/{model}: il modello non è nel catalogo o è temporaneamente nascostoPrendi l'id da GET /v1/models
404 invalid_request_error not_found compact_not_supportedOpenAI Responses: /v1/responses/{id} e altri indirizzi di stato, /v1/responses/compactConserva la cronologia da te; per Codex CLI imposta il tuo id di provider
404 invalid_request_errorPercorso sconosciutoControlla metodo, percorso e indirizzo di base
413 invalid_request_errorCorpo della richiesta oltre il limiteRiduci la richiesta
415 invalid_request_errorIl corpo non è JSON secondo l'header: serve Content-Type: application/jsonInvia Content-Type: application/json
429 rate_limit_exceededSuperato il numero di richieste al minuto per chiave; nel corpo c'è rate_limit con limit, remaining, resetAttendi il numero di secondi indicato in Retry-After
429 rate_limit_exceeded upstream_rate_limitedModello sovraccarico nella rete GonkaRiprova dopo Retry-After oppure scegli un altro modello — Modelli
429 rate_limit_exceeded queue_timeout queue_fullTutti i posti verso la rete sono occupati: la coda è piena o l'attesa è scadutaRiprova dopo Retry-After
500 server_errorErrore interno del gatewayRiprova più tardi; se persiste, scrivi al supporto allegando x-request-id
501 not_implementedPOST /v1/embeddings: nella rete non ci sono modelli di embeddingUsa un altro servizio di embedding
502 api_error upstream_unauthorizedIl provider della rete ha rifiutato le credenziali del gateway — la tua chiave è a postoRiprova tra un minuto
502 api_errorErrore della rete Gonka; code proviene dalla rete, se lo ha inviatoRiprova con una pausa oppure scegli un altro modello
503 model_unavailable model_outage model_initializing model_unstable model_not_servedIl modello al momento non è disponibile secondo i probe della rete: guasto, avvio, instabilità o nessuno lo sta servendo; rifiuto immediato, senza attesaScegli un altro modello — il testo dell'errore ti dirà quale; l'elenco è in Modelli
503 service_unavailableNessun nodo disponibileRiprova più tardi
504 timeout upstream_timeoutLa rete ha accettato la richiesta ma non ha risposto in tempo; la stima dei token di input è già stata addebitataPer le risposte lunghe usa stream: true; un nuovo tentativo comporta un nuovo addebito

Errori nello stream aperto#

Finché lo stream non è aperto, il rifiuto arriva con un normale codice di risposta — come senza stream. Dopo l'apertura lo stato è già 200 e l'errore arriva così:

  • Chat Completions — chunk joingonka-error con il campo error, poi interruzione senza [DONE].
  • Senza stream dopo una risposta anticipata — stato 200 e corpo con il campo error.
  • Anthropic Messages — evento event: error, poi lo stream si chiude.
  • OpenAI Responses — evento response.failed, causa in response.error.code.
  • Legacy Completions — data: {"error": …}, poi [DONE].
SSE
data: {"id":"joingonka-error","object":"chat.completion.chunk","model":"MiniMaxAI/MiniMax-M2.7","choices":[],"error":{"message":"Gonka network error","type":"api_error"}}

Formato degli errori Anthropic#

  • POST /v1/messages risponde con l'envelope Anthropic: {"type": "error", "error": {"type", "message"}}.
  • I rifiuti del gateway mantengono il type dalla tabella sopra (insufficient_funds, model_unavailable e altri); il campo code non esiste in questo envelope — la causa è nel testo.
  • Errori nella forma della richiesta — invalid_request_error: mancano i messaggi o max_tokens, chiamata a uno strumento senza nome, modello sconosciuto.
  • Percorso sconosciuto — not_found_error, corpo troppo grande — request_too_large.
SSE
event: error
data: {"type":"error","error":{"type":"timeout","message":"Upstream timeout"}}

Cosa ritentare#

  • Dopo la pausa indicata in Retry-After: 429
  • Con pause crescenti — 1, 2, 4 s e oltre: 500, 502, 503 service_unavailable, 504
  • Con un altro modello: 503 model_unavailable
  • Non ritentare senza modifiche — correggi la richiesta, la chiave o il saldo: 400, 401, 402, 403, 404, 413, 415, 501

Ogni tentativo dopo 504 comporta un nuovo addebito della stima di input; per le risposte lunghe attiva stream: true.

Se l'errore si ripete, scrivi al supporto allegando x-request-id dagli header della risposta.