Erreur 504 : que faire quand gpt-5-nano échoue
Un 504 signifie que la passerelle a expiré en attendant le modèle amont : la requête a été envoyée, mais l'amont n'a pas répondu dans le délai imparti.
504 Gateway Timeout signifie que la passerelle a cessé d’attendre la réponse de l’upstream. La requête a été transmise, mais aucun résultat n’est revenu dans la limite imposée. Raccourcir la sortie, activer le streaming ou baisser max_tokens règle généralement le problème.
gpt-5-nano est fourni par OpenAI. Tout sur cette page — causes, correctifs et données mesurées — est établi à partir du comportement réel de ce modèle au niveau de la passerelle.
Sur cette passerelle, le déclencheur le plus courant est : L'amont a mis plus de temps que le délai autorisé par la passerelle. La première action recommandée : Passez à la sortie en streaming.
Causes fréquentes
- L'amont a mis plus de temps que le délai autorisé par la passerelle
- Un contexte long a augmenté le temps d'inférence
- Un nœud amont est bloqué
- Une requête non diffusée avec une sortie très longue
Comment corriger
- Passez à la sortie en streaming
- Raccourcissez le contexte et réduisez max_tokens
- Réessayez après une courte attente
- Utilisez un modèle à inférence plus rapide
Nouvelle tentative avec backoff exponentiel
Le code ci-dessous réessaie lorsque gpt-5-nano renvoie 504 : jusqu’à 5 tentatives, avec une attente croissante et un jitter aléatoire pour éviter que les appels concurrents ne réessaient simultanément. Lisez l’URL de base et la clé API depuis les variables d’environnement, ne les écrivez jamais en dur.
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 = 'gpt-5-nano'
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"}]))Données clés de ce modèle
| TPS | 12503.86 |
|---|---|
| Latence moyenne | 27982 ms |
| Taux de réussite | 100% |
| Point de terminaison API | https://api.airai.cc/v1 |
| Compatible OpenAI | OpenAI-compatible |
| Fournisseur | OpenAI |
|---|---|
| Contexte | 400K |
| Capacités | Reasoning, Tools, Files, Vision |
| Formats d’API | openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search |
| Formule de facturation | p * 0.05 + cr * 0.005 + c * 0.4 |
Questions fréquentes
Serai-je facturé lorsque gpt-5-nano renvoie 504 ?
Aucune facturation : seule la sortie réellement produite compte dans l’usage. Seule la sortie déjà produite est facturée, pas la partie échouée. Le prix d’entrée est d’environ $0.05 par million de tokens. Avec la facturation p * 0.05 + cr * 0.005 + c * 0.4, le coût des sorties longues vient surtout des tokens de sortie. Vérifiez d’abord le solde et les limites de débit dans la console, ensuite le code. En estimant le coût à partir de p * 0.05 + cr * 0.005 + c * 0.4, incluez aussi le budget de relances.
Le traitement asynchrone ou par lots évite-t-il 504 ?
Ici les vraies variables sont la concurrence et les délais d’attente, pas le modèle. Baissez d’abord la concurrence : la plupart des problèmes de débit disparaissent ensuite. Ce modèle dispose d’une fenêtre de contexte de 400K et vient de OpenAI. Partez d’une concurrence faible, observez quelques minutes, puis montez.
Au bout de combien de temps 504 sur gpt-5-nano justifie-t-il le support ?
Conservez l’identifiant de requête et le corps brut de la réponse, sinon rien ne peut être retracé. Si cela n’arrive qu’en production, c’est généralement une différence d’environnement, pas le modèle. Le taux de réussite mesuré est 100% et la plupart des échecs se présentent comme 504. Le taux de succès 100% est une moyenne par nœud : un nœud faible tire le chiffre global vers le bas. Enregistrez l’identifiant de requête à chaque échec : c’est plus utile que le code d’état. Reproduisez d’abord le cas en préproduction avec le même corps de requête.
504 peut-il entraîner une perte de données ?
C’est généralement passager et se rétablit tout seul. Les balises de capacité de ce modèle sont Reasoning, Tools, Files, Vision. Avec un taux de réussite de 100%, un 504 occasionnel est une variation normale. Déterminez d’abord si c’est au niveau du compte ou du modèle ; les deux demandent un traitement totalement différent.
Autres erreurs sur ce modèle
- gpt-5-nano : erreur 429 — causes et solutions
- gpt-5-nano : erreur timeout — causes et solutions
- gpt-5-nano : erreur 500 — causes et solutions
- gpt-5-nano : erreur 502 — causes et solutions
- gpt-5-nano : erreur 503 — causes et solutions
- gpt-5-nano : erreur 401 — causes et solutions
- gpt-5-nano : erreur 403 — causes et solutions
- gpt-5-nano : erreur 400 — causes et solutions
Autres modèles avec la même erreur
- gpt-5
- claude-opus-5
- gemini-2.5-pro
- deepseek-v4-pro
- grok-4.3
- llama-3.3-70b-instruct
- qvq-max
- qwq-32b
- glm-5
- MiniMax-M3
- kimi-k3
- hy3
- doubao-seed-evolving
- mimo-v2.5
- gpt-4o
- claude-opus-4-6
Données mises à jour: 2026-10-10 12:10