Fail Node
Le node Fail Node arrête volontairement un workflow avec un message d'erreur personnalisé, utile pour la validation, l'application de règles métier et la gestion explicite des erreurs.
À quoi sert le node Fail Node ?
Le node Fail Node arrête l’exécution du workflow et renvoie un message d’erreur personnalisé. Utilisez-le comme point de terminaison explicite lorsqu’une condition amont n’est pas remplie : pour valider les entrées au plus tôt, appliquer des règles métier, ou faire remonter un échec clair et lisible à la personne qui exécute (ou supervise) le workflow.
Cas d’usage typiques :
- Stopper le workflow lorsqu’une entrée requise (URL, clé API, dataset) est absente ou invalide.
- Appliquer une règle métier avant de continuer (ex : contenu de moins de 500 mots, score hors
[0, 100]). - Transformer une erreur API molle (HTTP 4xx/5xx) en échec de workflow dur et traçable, avec contexte complet.
- Arrêter tôt lorsqu’une limite de débit ou un quota est atteint.
Configuration rapide
Suivez ces étapes pour ajouter et configurer le node Fail Node dans votre workflow :
Ajouter le node au canevas
Ouvrez la bibliothèque de nodes (Node Library), naviguez dans la catégorie Tools > Flow control, puis glissez-déposez le node Fail Node sur votre espace de travail.
Le placer sur une branche conditionnelle
Reliez le Fail Node en aval d’un node Conditional afin qu’il ne se déclenche que sur la branche d’échec. Sans garde, le workflow échouera à chaque exécution.
Rédiger un message d’erreur clair
Ouvrez les paramètres du node et remplissez le champ Error Message. Référencez les valeurs amont via des variables de template comme {{nodeName.field}} afin que le message contienne la donnée à l’origine de l’échec.
(Optionnel) Externaliser le message
Cochez Use variable for error message pour lier le message à la variable de workflow externe {{errorMessage}}. Le Fail Node lit alors son message depuis l’entrée du workflow à l’exécution.
Paramètres de configuration
Le Fail Node ne prend qu’un seul paramètre texte, mais c’est la qualité du message qui rend ce node utile.
Champs requis
Name string required default: Stop Node Nom du node — Identifiant affiché sur le canevas et dans les logs d’exécution. Renommez-le pour décrire ce qu’il garde (ex : Fail si URL absente) afin de faciliter le débogage.
Description string required Description du node — Phrase courte décrivant la condition d’échec gérée par ce node.
Error Message string required default: Workflow stopped intentionally Message d’erreur — Texte affiché lorsque le node se déclenche. Supporte les variables de template ({{variableName}}, {{nodeName.field}}) qui sont interpolées depuis les sorties des nodes amont à l’exécution. Obligatoire : la validation refuse une valeur vide sauf si l’option d’externalisation est activée.
Champs optionnels
Use variable for error message boolean default: false Externaliser le message d’erreur — Lorsque activé, le node lit son message depuis la variable de workflow externe {{errorMessage}} au lieu du champ statique. Utile lorsque le message lui-même est calculé par un node amont ou passé en entrée du workflow.
Les variables de template dans le message d’erreur sont résolues au moment de l’exécution. Si une variable référencée est absente, le placeholder apparaît littéralement dans la sortie — pratique pour repérer des erreurs de câblage en développement.
Que renvoie le node ?
Le Fail Node n’a pas de port de sortie : il termine l’exécution du workflow au lieu de produire des données. Le moteur d’exécution lève une UserFailedException avec votre message en pièce jointe, qui est restituée dans le log d’exécution et tout canal de supervision abonné.
Comment récupérer l’output ?
Comme le node met fin à l’exécution, les nodes en aval ne sont jamais atteints. Pour réagir à l’échec, consommez le résultat d’exécution du workflow depuis l’extérieur (webhook API, vue d’historique, alerting). Le message que vous avez rédigé dans le node est exactement ce que le consommateur reçoit.
error_message string Le message d’erreur interpolé passé à UserFailedException. C’est le texte humainement lisible affiché dans le log d’exécution et renvoyé par l’API d’exécution du workflow.
status string Statut de l’exécution du workflow positionné à failed. L’exécution est marquée comme un échec utilisateur intentionnel, distinct des erreurs système, ce qui permet de filtrer les dashboards de supervision en conséquence.
Exemples d’utilisation
Cas 1 : Valider une entrée requise au plus tôt
Garantir qu’une URL est fournie avant de lancer un pipeline de scraping coûteux.
Vérification du Conditional (amont) : {{Text_Input_0.text}} est vide.
Configuration du message d’erreur :
URL is required but was not provided.
Please supply a valid http(s) URL in the Text Input node.
Ce qu’il se passe à l’exécution : lorsque le Conditional route vers le Fail Node, le workflow s’arrête immédiatement. Les nodes Web Scraper / LLM en aval ne sont jamais facturés.
Cas 2 : Imposer une longueur minimale de contenu avec interpolation
Refuser un contenu de moins de 500 mots avant envoi vers un CMS.
Vérification du Conditional (amont) : {{Count_List_Items_0.count}} < 500.
Configuration du message d’erreur :
Content too short ({{Count_List_Items_0.count}} words).
Minimum required: 500. Expand the article before publishing.
Message généré à l’exécution (exemple) :
Content too short (312 words).
Minimum required: 500. Expand the article before publishing.
Cas 3 : Faire suivre un message d’erreur externe
Lorsque le message est construit par un node LLM ou API amont, externalisez-le :
- Dans les paramètres du Fail Node, cochez Use variable for error message.
- Le champ est remplacé par
{{errorMessage}}. - Câblez la sortie du node amont vers la variable
errorMessagedu workflow.
Le node relaie alors le message produit par le node amont, sans aucune édition de chaîne dans le Fail Node lui-même.
Problèmes courants
Le workflow échoue toujours, même sur le chemin nominal
Cause : le Fail Node a été placé en ligne (sans Conditional en amont), donc chaque exécution l’atteint.
Solution : insérez un node Conditional en amont et reliez le Fail Node uniquement à la branche d’échec. La branche de succès doit le contourner entièrement.
Le message d'erreur contient le placeholder littéral `{{variableName}}`
Cause : le nom de variable ne correspond à aucune sortie amont, ou le node amont n’a pas produit de valeur avant le déclenchement du Fail Node.
Solution : copiez le nom de variable depuis le panneau de sortie du node source. Vérifiez que ce node source est bien en amont du Conditional qui déclenche le Fail Node, afin que sa valeur soit disponible au moment de l’interpolation.
`Use variable for error message` est activé mais le message est vide
Cause : la variable externe {{errorMessage}} n’est pas reliée ou la valeur amont est vide.
Solution : le runner se rabat sur Workflow failed intentionally dans ce cas. Pour obtenir un message exploitable, assurez-vous que le node amont écrit bien une chaîne non vide dans la variable de workflow errorMessage.
Erreur de validation `Error message is required` dans le panneau de paramètres
Cause : le champ est vide et la case d’externalisation est décochée.
Solution : soit saisissez un message (la seule valeur d’apparence vide acceptée est la référence littérale {{errorMessage}}), soit cochez Use variable for error message.
Bonnes pratiques et pièges à éviter
Échouer tôt, échouer fort. Placez les Fail Nodes de validation tout au début du workflow, avant tout node coûteux (LLM, scraper, écriture BigQuery). Un échec clair sur la validation des entrées ne coûte rien ; le même échec après 30 secondes d’appels LLM coûte temps et argent.
N’utilisez pas le Fail Node dans une Loop. Un Fail Node termine l’intégralité du workflow, pas seulement l’itération en cours. Si vous voulez ignorer un mauvais élément et continuer, utilisez plutôt un Conditional qui route le mauvais élément vers une branche de log — la boucle continuera d’itérer.
Comment s’intègre-t-il dans un workflow ?
Le Fail Node est un node terminal placé sur la branche d’échec d’un Conditional. Le motif est « valider, puis dérouler » : un ou plusieurs Conditional à l’entrée du workflow, chacun gardant un Fail Node, puis les nodes productifs en aval.
graph LR
Input[Text Input] --> Cond{URL valide ?}
Cond -->|Non| Fail[Fail Node
<br/>URL absente]
Cond -->|Oui| Scraper[Web Scraper]
Scraper --> LLM[LLM]
LLM --> Output[Output]
Nodes complémentaires
Le partenaire amont naturel du Fail Node — route l’exécution vers la branche Fail uniquement lorsqu’une garde est en échec.
Itérer sur une liste. Évitez d’associer un Fail Node à l’intérieur de la boucle — utilisez plutôt un motif de saut conditionnel.
Mettre le workflow en pause pour relecture humaine au lieu d’échouer — utile lorsqu’un humain peut corriger la donnée à la volée.
À associer au Fail Node pour transformer les réponses HTTP non-2xx en échecs de workflow explicites et bien décrits.