La gestion des erreurs CometAPI est plus simple lorsque vous distinguez les problèmes de structure de requête, les problèmes d’auth, les erreurs de chemin, et les défaillances temporaires de la plateforme pouvant faire l’objet d’une nouvelle tentative. Utilisez la combinaison du statut HTTP, deDocumentation Index
Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
Use this file to discover all available pages before exploring further.
error.code et de error.message pour décider s’il faut corriger la requête ou la retenter.
Triage rapide
| Status | Ce que cela signifie généralement | Retry? | Première action |
|---|---|---|---|
400 | La validation de la requête a échoué avant que la requête ne soit traitée normalement. | Non | Validez model, messages, la structure JSON et les types des champs. |
401 | La clé API est absente, mal formée ou invalide. | Non | Vérifiez Authorization: Bearer <COMETAPI_KEY>. |
403 | L’accès a été bloqué ou la requête actuelle n’était pas autorisée. | Généralement non | Réessayez avec une requête connue comme valide et supprimez d’abord les champs spécifiques au modèle. |
| Path mistake | URL de base incorrecte ou mauvais chemin d’endpoint. Sur Comet, cela peut apparaître sous la forme d’une redirection 301 ou de HTML, et non d’un 404 JSON propre. | Non | Utilisez exactement https://api.cometapi.com/v1 et désactivez le suivi automatique des redirections pendant le débogage. |
429 | Limitation de débit ou saturation temporaire. | Oui | Utilisez un backoff exponentiel avec jitter. |
500 with error.code: invalid_request | Une requête mal formée a remonté via une réponse de statut serveur. | Non | Corrigez le corps de la requête avant de réessayer. |
500, 503, 504, 524 | Défaillance de plateforme, de fournisseur ou liée à un délai d’expiration. | Oui | Réessayez avec un backoff et conservez le request id. |
Enveloppe d’erreur
De nombreux échecs CometAPI utilisent un corps d’erreur comme celui-ci :code vide. Lorsque le statut est 500, considérez error.code et error.message comme le signal déterminant.
400 Bad Request
Un 400 signifie généralement que le corps de la requête a échoué à la validation avant que la requête puisse être traitée normalement.
Causes fréquentes :
- Champs obligatoires manquants, comme
model - Structure JSON invalide
- Envoi d’un champ avec un type incorrect
- Réutilisation de paramètres spécifiques à un fournisseur que l’endpoint sélectionné n’accepte pas
your-model-id par n’importe quel model ID actuel depuis la page des modèles CometAPI.
Ne supposez pas que chaque requête de chat mal formée renvoie 400. Des champs de chat obligatoires manquants, comme messages, peuvent aussi remonter sous forme de 500 avec error.code: invalid_request.
500 Internal Server Error
La plupart des réponses 500 indiquent une défaillance de plateforme ou de fournisseur. Pour Chat Completions, certaines requêtes mal formées peuvent également remonter comme des 500 tout en contenant error.code: invalid_request.
Un exemple est une requête qui omet messages :
500 contient error.code: invalid_request, traitez-la comme un problème de requête :
- Corrigez le corps de la requête.
- Comparez la charge utile au schéma de l’endpoint.
- Ne réessayez qu’après avoir corrigé la charge utile.
500 n’indique pas une requête invalide, conservez le request id et utilisez un backoff.
401 Invalid Token
Un échec de token ressemble généralement à ceci :
- L’en-tête doit être exactement
Authorization: Bearer <COMETAPI_KEY>. - Assurez-vous que votre application ne charge pas une ancienne clé depuis
.env, l’historique du shell ou un magasin de secrets déployé. - Si une clé échoue et qu’une autre fonctionne pour la même requête, traitez cela comme un problème de token, et non comme un problème d’endpoint.
403 Forbidden
403 correspond le plus souvent à l’une de ces situations :
- La requête est bloquée par une règle côté plateforme, comme un filtrage WAF
- Le token ou la route n’est pas autorisé à utiliser le model demandé ou la forme de requête demandée
- Le model choisi rejette l’un des paramètres avancés que vous avez transmis
- Réessayez avec une requête texte très simple sur un model connu pour fonctionner.
- Supprimez les champs avancés et les paramètres spécifiques au fournisseur, puis rajoutez-les progressivement.
- Si la réponse inclut un request id, conservez-le avant de contacter le support.
Mauvaise base URL ou mauvais chemin
Sur Comet, une erreur de chemin peut se manifester par :- Une redirection
- Une réponse HTML non JSON si votre client suit les redirections
- Une erreur d’analyse dans votre SDK
- Une requête qui n’atteint jamais proprement la couche API
- Confirmez que la base URL inclut
/v1. - Confirmez que le chemin de l’endpoint correspond exactement à la documentation.
- Désactivez le suivi automatique des redirections pendant le débogage des problèmes de chemin.
413 Request Entity Too Large
Si vous voyez 413, traitez-le d’abord comme un problème de taille de requête. Les causes courantes sont :
- De grosses charges utiles base64
- Des images ou des fichiers audio surdimensionnés intégrés en ligne
- Des corps multipart ou JSON très volumineux
- Réduisez ou compressez le contenu joint.
- Découpez les tâches volumineuses en requêtes plus petites.
- Ne partez pas du principe que la longueur du texte brut est la seule cause.
429 Too Many Requests
Considérez 429 comme réessayable :
- Utilisez un backoff exponentiel avec jitter.
- Réduisez la concurrence en rafale.
- Conservez la journalisation des requêtes activée afin de voir quelle route et quel model saturent en premier.
503, 504, et 524
Ces statuts correspondent à des échecs côté serveur ou de type timeout.
Conseils pratiques :
503: route ou service fournisseur temporairement indisponible504et524: échecs de type timeout entre la plateforme, l’edge ou le service fournisseur
- Réessayez avec un backoff.
- Conservez le
request id, l’endpoint, le model et l’horodatage. - Si le même échec se répète après plusieurs tentatives, contactez le support avec ce contexte.
Avant de contacter le support
Capturez d’abord ces informations :- Méthode HTTP
- Chemin de l’endpoint
- Model ID
- JSON du corps de requête anonymisé (c’est l’élément le plus utile, et de loin, pour la plupart des appels API)
- Paramètres de requête si la requête en échec les utilisait
- Corps de réponse exact si votre client l’a capturé
- Statut HTTP complet
- Le
error.messageexact - Tout
request id - Horodatage approximatif
- Si la même requête fonctionne avec un autre modèle ou un autre token
- Noms des champs et valeurs de texte que vous avez envoyés avec le fichier
- Nom du fichier, type de fichier et taille approximative du fichier
- Indiquez si le fichier a été uploadé directement, référencé par URL ou intégré en base64