Aller au contenu

Erreurs

Comprenez les réponses d’erreur de Webway, les codes d’état et comment réessayer en toute sécurité.

Les erreurs utilisent une petite enveloppe JSON que les SDK compatibles avec OpenAI peuvent analyser :

json
{
  "error": {
    "message": "insufficient credit",
    "type": "insufficient_quota",
    "code": "insufficient_quota"
  }
}

type est la valeur générale sur laquelle les bibliothèques clientes se basent. code est plus précis et ne diffère de type que lorsque l’échec vient d’un fournisseur.

L’enveloppe dépend du point de terminaison. /v1/messages renvoie le format d’Anthropic, ce qui permet aux SDK Anthropic et à Claude Code de l’analyser et d’appliquer leur propre logique de nouvelle tentative sans traitement spécifique pour cette passerelle :

json
{
  "type": "error",
  "error": {
    "type": "overloaded_error",
    "message": "the provider is over capacity, retry shortly (request 4f2ab910)",
    "code": "overloaded"
  }
}

Codes d’état

État Signification Réessayer ?
400 JSON, champs ou paramètres non valides Non ; corrigez la requête
401 Clé manquante, non valide, expirée ou révoquée Non ; remplacez la clé
402 Votre solde ne suffit pas à couvrir la requête Après avoir approvisionné votre solde
403 Le modèle nécessite votre propre clé de fournisseur Non ; ajoutez-en une dans le tableau de bord
404 Modèle ou point de terminaison introuvable Non ; vérifiez l’identifiant et le chemin
413 Le corps de la requête est trop volumineux Non ; réduisez la charge utile
429 Limite de débit atteinte Oui ; attendez puis réessayez
502 / 503 Le fournisseur est indisponible Oui ; utilisez une temporisation progressive
504 Le fournisseur a dépassé le délai imparti Oui ; utilisez une temporisation progressive

Le code 402 concerne toujours uniquement votre solde. Un problème de facturation entre Webway et un fournisseur produit un code 502, car vous ne pouvez rien faire pour le résoudre.

Échecs des fournisseurs

Lorsque l’échec vient d’un fournisseur plutôt que de votre requête, code indique lequel s’est produit :

code État Signification Réessayer ?
model_unavailable 502 Le fournisseur ne servira pas ce modèle. C’est à nous de corriger le problème Non
context_length_exceeded 400 La requête dépasse la fenêtre de contexte du modèle Non
content_filtered 400 La couche de sécurité du fournisseur a refusé la requête Non
invalid_request 400 Le fournisseur a rejeté la requête Non
rate_limited 429 Limite de débit atteinte chez le fournisseur Oui
overloaded 503 Le fournisseur a dépassé sa capacité Oui
timeout 504 Le fournisseur n’a pas répondu à temps Oui
transport_error 502 La connexion au fournisseur a échoué Oui
upstream_error 502 Non classé. Toujours examiné Peut-être

Le texte des erreurs du fournisseur n’est jamais transmis tel quel. Les services en amont décrivent les échecs avec leur propre vocabulaire, parfois dans une autre langue, mentionnent souvent une infrastructure qui ne vous appartient pas, et ce texte change sans préavis. Chaque erreur est classée dans l’une des catégories ci-dessus et reformulée, afin que le message reçu soit suffisamment stable pour servir de référence dans les journaux.

Chaque message se termine par un identifiant de requête Webway. Indiquez-le dans vos demandes d’assistance : c’est l’identifiant qui peut réellement être recherché.

Erreurs pendant la diffusion en continu

Une requête peut échouer après l’envoi des en-têtes de réponse. Il n’est alors plus possible de modifier le code d’état ; l’échec arrive donc sous forme d’événement dans le flux, selon le même protocole que le reste — event: error sur /v1/messages, un événement error sur /v1/responses, un fragment error sur /v1/chat/completions. Les valeurs de code correspondent au même tableau.

Considérez comme un échec tout flux qui se termine sans son événement terminal, et non comme une réponse courte.

Règles de nouvelle tentative

Réessayez uniquement les réponses 429 et les réponses 5xx transitoires. Utilisez une temporisation exponentielle avec une part d’aléatoire, limitez le nombre de tentatives et respectez Retry-After lorsqu’il est présent.

Ne réessayez pas les codes 400, 401, 402, 403, 404 ou 413 sans modifier la requête. La même requête échouera à nouveau.

Les requêtes rejetées avant le début du traitement par le fournisseur ne sont pas facturées. Une requête qui échoue après le début de la génération peut être facturée pour les jetons déjà produits, y compris si vous l’annulez en cours de diffusion.