Erreurs, statuts et reprises
Le statut HTTP de chaque échec et ce qu’il est sûr de réessayer.
Votre intégration réagit correctement à chaque type d’échec.
INPUT_ERRORCorriger les entréesAUTH_ERRORRétablir la connexionAPI_CHANGEDConsulter la réparationEXECUTION_ERRORExaminer le résultatRésultat d’une écriture inconnu ? Vérifiez le site avant de relancer.
Votre parcours, en trois étapes.
- 01
Lisez le statut et le corps
Une clé invalide renvoie un champ error simple. Un refus 429 ajoute un message. Ces réponses n’ont pas le champ success d’une exécution.
- 02
Traitez la cause avant de relancer
Corrigez les entrées, restaurez la connexion ou attendez la réparation selon le code. Une erreur d’exécution ne garantit pas qu’une reprise soit sûre.
- 03
Ne répétez jamais une écriture au résultat inconnu
Vérifiez l’enregistrement dans le logiciel cible avant de renvoyer quoi que ce soit.
Un point à approfondir ?
Ouvrez uniquement le sujet dont vous avez besoin.
Vue d’ensemble
Deux choses déterminent le comportement de votre intégration quand un connecteur échoue : lequel des quatre codes est revenu, et si la requête peut être renvoyée sans risque. Cette page couvre les deux, et nomme le seul cas où réessayer est une erreur alors que tout semble réessayable.
Les statuts
| HTTP | Quand | Corps |
|---|---|---|
200 | Le connecteur s’est exécuté et a répondu. | L’enveloppe, avec success: true. |
400 | Une entrée manque, ou le site a refusé la valeur. | L’enveloppe, error.code vaut INPUT_ERROR. |
400 | Le connecteur est inactif ou le corps de la requête est invalide. | { error, message }, avec BRIDGE_NOT_ACTIVE ou VALIDATION_ERROR. |
401 | La clé manque ou est fausse, ou le connecteur n’a pas pu agir en tant qu’utilisateur connecté. | Un simple { "error": "…" } pour une clé absente ou fausse ; l’enveloppe avec AUTH_ERROR quand c’est la connexion elle-même qui a échoué. |
403 | Le compte a atteint une limite d’utilisation ou de l’offre. | { error, message } avec la raison du refus. |
404 | Le connecteur demandé n’existe pas. | { "error": "NOT_FOUND", "message": "…" }. |
429 | Limite de débit, ou cinq exécutions déjà en cours pour le compte. | { "error": "TOO_MANY_REQUESTS", "message": "…" } — pas l’enveloppe. |
500 | Tout le reste : le site a changé, un délai dépassé, un échec de transport. | L’enveloppe, error.code vaut API_CHANGED ou EXECUTION_ERROR. |
Certains refus n’utilisent pas l’enveloppe d’exécution
Une clé absente ou invalide renvoie { error }. Les limites de débit, connecteurs inactifs, requêtes invalides et limites d’offre peuvent renvoyer { error, message }, sans success. Vérifiez le statut HTTP et la forme du corps avant de lire le résultat d’une exécution.
La politique de reprise
| Code | Réessayer ? | Comment |
|---|---|---|
INPUT_ERROR | Non. | La même entrée échouera à l’identique. error.availableOptions liste souvent des valeurs qui passeraient ; error.sampleInput montre la forme attendue. |
AUTH_ERROR | Après rétablissement de l’accès. | Lisez l’état du connecteur et terminez la reconnexion si elle est demandée. Une simple pause ne prouve pas que l’accès est rétabli. |
API_CHANGED | Après vérification. | Consultez l’état de la réparation. Elle peut être en cours ou demander votre intervention ; attendez un résultat vérifié avant de rappeler. |
EXECUTION_ERROR | Seulement si la reprise est sûre. | Ce code couvre des incidents passagers et des erreurs d’exécution. Pour une lecture, quelques tentatives espacées peuvent aider. Pour une écriture au résultat inconnu, arrêtez et vérifiez le site source. |
429 | Oui. | Respectez Retry-After quand il est présent. Pour le refus de concurrence il n’y a pas d’en-tête : attendez la fin de vos propres appels en cours. Rien n’est mis en file pour vous. |
La règle qui compte plus que les codes
Ne réessayez jamais une action dont vous ne voyez pas le résultat
Quand un connecteur qui modifie quelque chose a envoyé sa requête et que la réponse n’est jamais arrivée, personne ne peut distinguer une réservation qui a échoué d’une réservation que votre client détient. Vela traite cet état comme définitif : aucune réparation, aucune reprise. Votre intégration doit faire pareil — lisez l’enregistrement sur le site, puis décidez.
Vela ne garantit pas l’idempotence des écritures. Envoyer deux fois la même requête peut créer deux enregistrements. Ne supposez pas qu’un en-tête d’idempotence est pris en charge sans indication explicite dans le contrat du connecteur.
Les champs à lire
{
"success": false,
"data": null,
"error": {
"code": "INPUT_ERROR",
"message": "no practitioner named \"Ana\" on this account",
"availableOptions": ["Anna", "Anaïs"],
"sampleInput": { "practitioner": "Anna", "date": "2026-09-21" }
},
"meta": { "executionId": "9e600e25-…", "scriptVersion": 3, "durationMs": 412, "sessionRenewed": false },
"needsRepair": false
}-
meta.executionId— à citer dans une demande de support. Il identifie l’exécution, son entrée et la version qui a répondu. -
meta.scriptVersion— quelle version a produit ce résultat, pour qu’une vieille réponse reste explicable. -
meta.sessionRenewed—truequand Vela s’est reconnecté pendant cet appel précis. Utile quand vous cherchez d’où vient une latence : cet appel-là a payé une reconnexion. -
needsRepair— la classification de l’erreur indique un échec réparable. Cela ne prouve pas qu’une réparation a démarré ou réussi : consultez l’état du connecteur. Une écriture au résultat inconnu bloque la réparation automatique.
Attendre la réponse
Chaque appel répond avec son résultat. ?async=true est accepté pour les anciennes intégrations et reçoit la même réponse. Pour suivre les étapes au fil de l’eau, utilisez /stream.
Ce qu’un échec provoque côté Vela
- Un
API_CHANGEDsur un connecteur sain lance une réparation automatique. UnAUTH_ERRORfait se reconnecter Vela une fois, puis vous le demande. Une écriture au résultat inconnu ne lance jamais rien d’automatique. - Un
429, un délai dépassé ou un échec réseau ne change rien à l’état du connecteur. Les échecs ambigus ne sont jamais retenus contre lui. - Un
INPUT_ERRORn’est pas une faute du tout : le connecteur a fonctionné, le site a dit non.
Les états qui en découlent sont décrits dans Le cycle de vie d’un connecteur, et la suite dans La réparation automatique.
Une adresse de serveur pour les outils de votre toolset.
↗Votre situation ne correspond pas au guide ?
Échanger avec l’équipe ↗