Errore 504: cosa fare quando gemini-3.5-flash fallisce

Un 504 significa che il gateway è andato in timeout attendendo il modello a monte: la richiesta è stata inviata, ma il monte non ha risposto entro il timeout del gateway.

504 Gateway Timeout significa che il gateway ha smesso di attendere la risposta dell’upstream. La richiesta è stata inoltrata, ma nessun risultato è tornato entro il limite. Accorciare l’output, attivare lo streaming o ridurre max_tokens di solito risolve.

gemini-3.5-flash è fornito da Google. Tutto in questa pagina — cause, soluzioni e dati misurati — è ricavato dal comportamento reale di questo modello al livello del gateway.

Su questo gateway, la causa più comune è: Il monte ha impiegato più del timeout consentito dal gateway. La prima azione consigliata è: Passa all'output in streaming.

Cause comuni

  • Il monte ha impiegato più del timeout consentito dal gateway
  • Un contesto lungo ha aumentato il tempo di inferenza
  • Un nodo a monte è bloccato
  • Una richiesta non in streaming con output molto lungo

Come risolvere

  • Passa all'output in streaming
  • Accorcia il contesto e riduci max_tokens
  • Riprova dopo una breve attesa
  • Usa un modello con inferenza più rapida

Retry con backoff esponenziale

Il codice qui sotto ritenta quando gemini-3.5-flash restituisce 504: fino a 5 tentativi, con attesa crescente e jitter casuale per evitare che le chiamate concorrenti ritentino insieme. Leggi base URL e API key dalle variabili d’ambiente, non inserirle hardcoded.

import os, time, random
import requests

BASE  = os.getenv("OPENAI_BASE_URL")   # e.g. https://<your-gateway>/v1
KEY   = os.getenv("OPENAI_API_KEY")
MODEL = 'gemini-3.5-flash'


def chat(messages, retries=5):
    """Retry with exponential backoff + jitter."""
    for i in range(retries):
        try:
            r = requests.post(
                BASE + "/chat/completions",
                headers={"Authorization": "Bearer " + KEY},
                json={"model": MODEL, "messages": messages, "stream": True},
                timeout=60,
            )
            if r.status_code == 429 or r.status_code >= 500:
                time.sleep(min(2 ** i + random.uniform(0, 1), 30))
                continue
            r.raise_for_status()
            return r.json()
        except requests.exceptions.Timeout:
            time.sleep(min(2 ** i + random.uniform(0, 1), 30))
    raise RuntimeError("gave up after " + str(retries) + " retries")


print(chat([{"role": "user", "content": "hello"}]))

Dati chiave di questo modello

TPS1669.89
Latenza media3330 ms
Tasso di successo100%
Endpoint APIhttps://api.airai.cc/v1
Compatibile con OpenAIOpenAI-compatible
FornitoreGoogle
Contesto1M
FunzionalitàReasoning, Tools, Files, Vision, Audio
Formati APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Formula di fatturazionep * 1.5 + cr * 0.15 + ai * 1.5 + c * 9

Domande frequenti

Condividere una key tra più servizi rende 504 più probabile?

Sia alzare il limite del piano sia ridurre la frequenza delle chiamate aiuta. La fatturazione segue p * 1.5 + cr * 0.15 + ai * 1.5 + c * 9: senza output nessun addebito. Con fatturazione p * 1.5 + cr * 0.15 + ai * 1.5 + c * 9, il costo degli output lunghi deriva soprattutto dai token di output. Controlla prima saldo e limiti di velocità nella console, poi il codice. Stimando il costo da p * 1.5 + cr * 0.15 + ai * 1.5 + c * 9, includi anche il budget per i ritenti.

504 può causare perdita di dati?

Questo errore non dipende dalle capacità del modello, è a livello di gateway. Di solito è momentaneo e si risolve da sé. I tag di capacità di questo modello sono Reasoning, Tools, Files, Vision, Audio. Con un tasso di successo di 100%, un 504 occasionale è normale variabilità. Se l’errore continua per diversi minuti, contatta il supporto della piattaforma per confermare lo stato upstream. Stabilisci prima se è a livello di account o di modello: i due casi si gestiscono in modo completamente diverso.

In staging va bene ma in produzione arriva 504: cosa cambia?

Raggruppa gli errori per orario e per nodo; lo schema di solito è evidente. Il tasso di successo 100% è una media per nodo, quindi un nodo debole trascina il dato complessivo. Registra l’id della richiesta a ogni fallimento: serve più del codice di stato. Riproduci il caso prima in ambiente di test con lo stesso corpo della richiesta.

Cambiare modello permette di evitare 504 su gemini-3.5-flash?

Tieni pronto anche un modello di riserva. Un fallback a livello di architettura è più affidabile che correggere ogni errore uno per uno. Questo modello di Google ha più nodi upstream tra cui il gateway può commutare. Tieni pronto un modello di riserva più leggero, così il flusso principale non si interrompe. Metti il nome del modello in configurazione, così cambiare upstream non richiede modifiche al codice.

Altri errori su questo modello

Altri modelli con lo stesso errore

Dati aggiornati: 2026-10-10 18:35

Supporto tecnicoAssistenza online
Torna in alto