Stop Node

Le node Stop Node arrête volontairement un workflow avec un message d'erreur personnalisé, pour la validation et les règles métier.

Stop Node on the workflow canvas

À quoi sert le node Stop Node ?

Le node Stop 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 Stop 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 Stop Node sur votre espace de travail.

Le placer sur une branche conditionnelle

Reliez le Stop 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 Stop Node lit alors son message depuis l’entrée du workflow à l’exécution.

Paramètres de configuration

Stop Node error message settings

Le Stop 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 : Stop 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.

Tip

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 Stop 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 Stop 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 :

  1. Dans les paramètres du Stop Node, cochez Use variable for error message.
  2. Le champ est remplacé par {{errorMessage}}.
  3. Câblez la sortie du node amont vers la variable errorMessage du workflow.

Le node relaie alors le message produit par le node amont, sans aucune édition de chaîne dans le Stop Node lui-même.

Problèmes courants

Le workflow échoue toujours, même sur le chemin nominal

Cause : le Stop 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 Stop 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 Stop 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 Stop 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

Tip

Échouer tôt, échouer fort. Placez les Stop 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.

Warning

N’utilisez pas le Stop Node dans une Loop. Un Stop 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 Stop 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 Stop Node, puis les nodes productifs en aval.

graph LR
    Input[Text Input] --> Cond{URL valide ?}
    Cond -->|Non| Stop[Stop Node
<br/>URL absente]
    Cond -->|Oui| Scraper[Web Scraper]
    Scraper --> LLM[LLM]
    LLM --> Output[Output]

Nodes complémentaires