TokenLab

Guides essentiels

Gérer les erreurs de l'API

Lisez les codes d'erreur, réessayez uniquement lorsque cela est utile et conservez le Request ID

Gérez les erreurs en fonction du statut HTTP et du code. Le message est rédigé pour les humains et peut changer sans préavis.

Les Chat Completions et les Responses utilisent un objet error de style OpenAI. Anthropic Messages et Gemini conservent leurs propres formats d'erreur, n'utilisez donc pas un seul analyseur pour toute l'API TokenLab.

{
  "error": {
    "message": "Human-readable description",
    "type": "error_type",
    "code": "error_code",
    "param": "parameter_name",
    "retryable": true,
    "retry_after": 30
  }
}

Seuls message et type sont toujours présents dans les erreurs compatibles avec OpenAI créées par TokenLab. Les autres champs apparaissent lorsqu'ils sont pertinents.

Codes de statut

StatutSignificationAction typique
400Un champ, un ID de modèle ou une entrée est invalideCorrigez la requête ; ne la répétez pas telle quelle
401La clé API est manquante, invalide, expirée ou révoquéeRemplacez la clé
402Le solde ou la limite de la clé API est trop basRechargez, augmentez la limite ou réduisez la requête
403Cette clé ne peut pas utiliser la ressource ou le modèleModifiez les permissions de la clé ou le modèle
404La ressource n'existe pas ou n'est plus disponibleVérifiez l'ID et la clé API qui l'a créé
413La requête ou le fichier téléchargé est trop volumineuxRéduisez l'entrée selon la limite documentée du modèle ou de l'endpoint
429Limite de requêtes atteinteAttendez selon Retry-After
500–504Service indisponible ou erreur réseauRéessayez uniquement si retryable vaut true ; respectez retry_after et limitez les tentatives

Codes d'erreur courants

CodeSignificationQue modifier
invalid_api_keyLa clé API est absente, invalide, inactive ou révoquéeVérifiez l'en-tête Authorization et la valeur de la clé
expired_api_keyLa clé API a expiréCréez ou sélectionnez une clé active
insufficient_balanceLe solde du compte ne peut pas couvrir la requêteAjoutez des fonds, réduisez la requête ou choisissez un modèle moins coûteux
quota_exceededLa clé API a atteint sa propre limiteAugmentez la limite de cette clé ou utilisez une autre clé autorisée
model_not_allowedLa clé ne peut pas utiliser le modèle demandéMettez à jour la liste des modèles de la clé ou choisissez un modèle autorisé
model_not_foundL'ID du modèle est inconnu ou indisponibleLisez /v1/models et utilisez un ID de modèle actuel
context_length_exceededL'entrée est plus longue que ce que le modèle accepteSupprimez l'historique ou choisissez un modèle avec une fenêtre de contexte plus large
rate_limit_exceededTrop de requêtes ont été envoyées dans la fenêtre actuelleAttendez selon Retry-After
payload_too_largeLe corps de la requête ou le fichier dépasse la limite de l'endpointRéduisez ou compressez l'entrée
all_channels_failedLe modèle sélectionné ne peut pas traiter cette requêteRéessayez uniquement si retryable vaut true ; respectez retry_after et limitez les tentatives
timeout_errorLa requête n'a pas abouti à tempsRéessayez uniquement lorsque l'opération peut être répétée en toute sécurité

503 all_channels_failed ou 503 delivery_tier_unavailable ne signifie pas toujours une panne temporaire. Si aucune offre ne couvre cette opération dans le niveau Delivery choisi, retryable vaut false et retry_after est absent. Ne répétez pas la même requête. Vérifiez la disponibilité de l’opération et du niveau Delivery avec GET /v1/models avant de choisir un autre modèle. Des noms similaires ne prouvent pas la disponibilité ; les alternatives non vérifiées sont omises.

Certaines erreurs compatibles avec OpenAI incluent des champs optionnels did_you_mean, suggestions, alternatives, hint, retryable ou retry_after. Voir Erreurs sur lesquelles les agents peuvent agir.

Lorsqu'une requête est passée par une route Official et que le service en amont a rejeté la requête elle-même, par exemple pour une entrée qu'il n'accepte pas ou une décision de politique de contenu, l'erreur contient aussi upstream : le message du service en amont tel qu'il l'a renvoyé, ainsi que code et source (le nom du service en amont) lorsqu'ils sont connus. Les erreurs Anthropic Messages et Gemini contiennent le même objet dans leur propre error. Continuez à vous baser sur code et type ; les valeurs de upstream.code sont définies par le service en amont et peuvent changer.

Décisions de réessai

ErreurRépéter la même requête ?
400, 401, 402, 403, 404, 413Non. Modifiez la requête, les identifiants, le solde, les permissions ou l'entrée.
429Oui, après le délai fourni par le serveur.
500–504Réessayez uniquement si retryable vaut true ; respectez retry_after et limitez les tentatives
Connexion fermée avant toute réponseParfois. Pour les opérations de création, vérifiez si une tâche ou un effet secondaire existe déjà.
Flux interrompu après l'arrivée de la sortieNe considérez pas cela comme une réponse complète. Répéter peut générer une sortie différente ou une seconde facturation.

Pour la création d'images, de vidéos, de musique, de 3D et de Worlds, enregistrez l'ID de tâche dès qu'il est renvoyé. Si une requête de création expire, vérifiez l'enregistrement de la tâche avant d'envoyer une autre requête de création.

Conservez le Request ID

Les en-têtes de réponse incluent un Request ID pour le traçage. Enregistrez-le avec l'endpoint, le modèle, l'heure et votre propre ID utilisateur ou de travail. Pour le travail asynchrone, enregistrez également task_id et billing_transaction_id lorsqu'ils sont présents.

Lorsque vous contactez le support, incluez ces ID et un exemple expurgé. N'envoyez jamais de clés API, de jetons de gestion, de médias privés, d'URLs signées ou de prompts privés complets.

De la requête à l’investigation et au support

Sur cette page