Erreurs
Gérez l'ensemble fermé de codes d'erreur de l'API HTTP et leurs détails structurés.
Toute opération en erreur renvoie une seule forme JSON :
1{2 "error": {3 "code": "INVALID_ARGUMENT",4 "message": "Human-readable explanation",5 "details": {}6 }7}code et message sont toujours présents. details est facultatif et contient un contexte lisible par machine propre à cette erreur. Basez votre logique sur code, pas sur le texte du message.
Codes d'erreur
| Code | Statut HTTP | Signification |
|---|---|---|
INVALID_ARGUMENT | 400 | Le JSON ou un argument est invalide, une idempotencyKey obligatoire est absente, ou une confirmation est nécessaire. |
UNAUTHENTICATED | 401 | L'identifiant Bearer est absent ou invalide. |
FORBIDDEN | 403 | L'identifiant n'a pas la portée requise par l'opération, ou un lien de preuve signé est invalide ou expiré. |
NOT_FOUND | 404 | La ressource n'existe pas, ou l'appelant n'y a pas accès. |
CONFLICT | 409 | La modification entre en conflit avec l'existant, par exemple un nom d'environnement déjà utilisé, ou une idempotencyKey réutilisée avec des arguments différents. |
LIMIT_REACHED | 402 | Réservé aux limites d'offre. Ce code n'est pas renvoyé aujourd'hui : voir Limites de l'offre. |
UNAVAILABLE | 503 | Autonomy n'a pas pu effectuer l'opération pour le moment. Réessayez plus tard. |
Une erreur inattendue utilise aussi le code UNAVAILABLE, avec le message « The operation could not be completed. », mais renvoie le statut HTTP 500.
Un JSON invalide renvoie 400 INVALID_ARGUMENT avec « Invalid JSON body. », et un corps qui n'est pas un objet JSON renvoie « The JSON body must be an object. » Une réponse 401 contient aussi le défi WWW-Authenticate.
Messages courants
| Code | Message | details |
|---|---|---|
INVALID_ARGUMENT | idempotencyKey is required for this operation. | field |
INVALID_ARGUMENT | limit must be an integer between 1 and 100. | |
INVALID_ARGUMENT | Give exactly one of testCaseId or testPlanId. | |
INVALID_ARGUMENT | Give either environmentSlug or targets, not both. | |
FORBIDDEN | This operation requires the <scope> scope. | scope |
NOT_FOUND | Project not found. / Test Case not found. / Test Plan not found. / Run not found. / Environment not found. / Issue not found. | L'identifiant que vous avez envoyé |
CONFLICT | idempotencyKey was already used with different arguments. | |
CONFLICT | That name is taken in this organization. Pick another. |
Une exécution qui ne peut pas être déclenchée renvoie aussi INVALID_ARGUMENT, par exemple lorsqu'un plan de test n'a aucun cas de test ou qu'un cas de test n'a encore que des étapes antérieures à la v0.5.
Détails de confirmation
Les opérations qui remplacent quelque chose renvoient un aperçu au lieu d'écrire lorsque confirm: true est absent. Par exemple, test_case.update_steps renvoie :
1{2 "error": {3 "code": "INVALID_ARGUMENT",4 "message": "Replacing all Test Case steps requires confirm: true.",5 "details": {6 "confirmRequired": true,7 "wouldChange": {8 "stepCountBefore": 4,9 "stepCountAfter": 610 }11 }12 }13}| Opération | Message | wouldChange |
|---|---|---|
test_case.update_steps | Replacing all Test Case steps requires confirm: true. | stepCountBefore, stepCountAfter |
test_plan.set_members | Confirm removing cases from this plan. | removed et added, chacun [{ testCaseId, name }] |
environment.upsert | Updating an existing environment requires confirm: true. | Les fields et platforms que vous avez fournis |
Rien n'est écrit tant que vous n'avez pas confirmé. Lisez l'aperçu, puis renvoyez la même requête avec confirm: true et la même idempotencyKey. Une requête qui renvoie une erreur ne stocke rien sous sa clé : la clé reste donc disponible.
Limites de l'offre
Lorsqu'une limite de l'offre bloque une opération, comme le crédit d'exécution de l'offre Free, le nombre mensuel d'exécutions ou le nombre de cas de test, l'API renvoie actuellement UNAVAILABLE avec le statut HTTP 500 et le message « The operation could not be completed. » Elle ne renvoie pas encore LIMIT_REACHED. Si une opération qui fonctionnait se met à renvoyer cette erreur, consultez Organization → Billing. Voir Facturation.
Limites des clés API
Les clés API d’organisation autorisent 1 000 requêtes par heure et par clé. Une clé qui atteint sa limite reçoit 429 RATE_LIMITED, avec un en-tête Retry-After indiquant le nombre de secondes à attendre. Les clés invalides, désactivées ou expirées reçoivent toujours 401.
Ce refus d’authentification utilise un objet direct avant l’exécution de l’opération :
1{2 "code": "RATE_LIMITED",3 "message": "This API key has made too many requests. Try again in 120 seconds."4}Attendez la durée Retry-After avant de réessayer. Les outils MCP signalent aussi RATE_LIMITED lorsque l’API renvoie cette réponse.
Vous n’avez pas trouvé ?