Skip to main content

Vue d’ensemble

L’endpoint Runner est public et consommé principalement par des clients email, des navigateurs et des intégrations côté serveur. Comme une réponse en erreur casserait la page ou l’email, la plupart des problèmes d’exécution ne sont pas renvoyés comme des erreurs HTTP : le Runner se dégrade vers une réponse neutre.
Prévoyez toujours un rendu de repli : une réponse 200 peut malgré tout contenir un contenu dégradé (voir ci-dessous).

Corps d’une réponse en échec

Les échecs utilisent la même enveloppe que les autres API Reelevant. code est le statut HTTP, error_code identifie l’échec et data porte les informations associées.
Rejouez les réponses 500 avec un court backoff. Tous les autres échecs sont déterministes : réessayer renverra le même résultat, affichez plutôt votre propre contenu de repli.

Réponses dégradées

Les erreurs au niveau d’un Node ne font jamais échouer la requête. Le Runner renvoie 200 et sert une réponse neutre, afin qu’un Data Node ou une Datasource en erreur ne casse pas l’intégration. Détectez ces cas côté client avant le rendu :

Mode click

mode=click résout l’URL de destination de la Branch exécutée et redirige vers celle-ci. Utilisez rlvt-redirect pour surcharger la destination résolue par le Workflow.

Mode debug

mode=debug renvoie un rapport d’exécution HTML (temps par Node, dépendances résolues, erreurs silencieuses, stack de l’erreur fatale) et mode=ui-debug redirige vers l’éditeur de Workflow avec le même rapport. Les deux exposent les internes du Workflow et les sorties des Datasources : ils requièrent un token de debug de courte durée.
La réponse contient token et expiresAt. Envoyez le token sur la requête Runner :
Les tokens durent 15 minutes et sont limités à la société propriétaire du Workflow. Un token absent, expiré ou hors périmètre renvoie l’error_code 3501 avec le statut HTTP 401.

Codes de retour d’exécution

Les exécutions dégradées sont remontées sur l’événement de Workflow, pas sur la réponse HTTP. Chaque exécution émet un événement portant un code de retour, exposé via :
  • la dimension Execution return code dans l’Exploration de données et les dashboards
  • la colonne execution_error_code du dataset des événements de Workflow dans le DataHub
Ces codes sont indépendants des error_code HTTP ci-dessus, même si 3501 existe dans les deux ensembles : 3501 sur un événement signifie une erreur fatale d’exécution, 3501 sur un échec HTTP signifie une requête de debug non autorisée. Les échecs HTTP (3000, 3500, validation, 500) n’émettent aucun événement : ils n’apparaissent donc jamais dans les analytics. Une exécution dégradée reste comptée comme un display : ces codes sont donc le moyen de mesurer l’impact d’une Datasource en erreur. Regroupez vos mesures de display par Execution return code dans l’Exploration de données, ou filtrez le dataset sur execution_error_code.

Corréler une exécution en échec

Chaque réponse porte l’en-tête x-rlvt-workflow-run-id. Journalisez-le à côté de votre propre identifiant de requête : il identifie l’exécution dans les analytics et dans le rapport de debug, et c’est ce dont le support a besoin pour la tracer.

Pages associées