Tous les produits
Search
Centre de documentation

CloudFlow:Fail state

Dernière mise à jour :Aug 11, 2026

L'état Fail met fin à un flux en générant une erreur personnalisée, comme raise en Python ou throw en Java. Lorsqu'un flux atteint un état Fail, tous les états de la portée actuelle s'arrêtent et le flux se termine.

Dans une définition de flux classique, chaque état passe au suivant une fois son exécution terminée. Un état Fail rompt ce schéma : aucun état suivant ne s'exécute.

Remarque

Contrairement à un état

Succeed

, qui attend la fin de la portée actuelle avant de terminer le flux, un état

Fail

met immédiatement fin au flux avec une erreur.

Attributs

Attribut Type Obligatoire Description Exemple
Name string Oui Nom de l'état. my state
Description string Non Description de l'état. describe it here
Type string Oui Doit être Fail. Fail
InputConstructor map[string]any Non Constructeur d'entrée. Voir InputConstructor. --
OutputConstructor map[string]any Non Constructeur de sortie. Voir OutputConstructor. --
Code string Non Code d'erreur pour l'identification programmatique. Utilisez Code pour catégoriser les échecs afin de faciliter le diagnostic ou la gestion des erreurs. customBizCode
Detail string Oui Description de l'erreur lisible par un humain. my custom error

Chaque état Fail requiert une valeur Detail décrivant l'erreur. L'attribut Code est facultatif mais recommandé : il fournit un identifiant lisible par machine qui facilite le diagnostic des échecs.

Remarque

Conseil :

Évitez d'exposer des détails internes du système ou des informations sensibles dans les valeurs

Code

ou

Detail

, car ces valeurs peuvent apparaître dans les sorties d'erreur.

Relation avec un état Pass

Un état Fail se comporte comme un état Pass avec End: true, sauf qu'il renvoie également une erreur. Les deux mettent fin au flux à l'emplacement actuel, mais un état Fail renvoie en plus une erreur spécifiée par Code et Detail.

Exemples

Mettre fin à un flux selon une condition

Ce flux utilise un état Choice pour évaluer une condition d'entrée. Si $Input.status est égal à "true", le flux passe à Pass1 et se termine normalement. Sinon, le flux bascule vers la branche par défaut et se termine avec un état Fail.

Type: StateMachine
Name: my-workflow
SpecVersion: v1
Description: " "
StartAt: Choice1
States:
  - Type: Choice
    Name: Choice1
    Branches:
      - Condition: $Input.status == "true"
        Next: Pass1
    Default: Fail1
  - Type: Fail
    Name: Fail1
    Code: "customBizCode"
    End: true
  - Type: Pass
    Name: Pass1
    End: true

Lorsque Choice1 évalue la condition et qu'aucune branche ne correspond, le flux transite vers Fail1. Le flux entier se termine avec le code d'erreur customBizCode.

Renvoyer une erreur statique

Dans sa forme la plus simple, un état Fail nécessite une valeur Detail et, éventuellement, un attribut Code :

- Type: Fail
  Name: ValidationError
  Code: "INVALID_INPUT"
  Detail: "Required field 'orderId' is missing"
  End: true

Utiliser des codes d'erreur descriptifs

Choisissez des codes d'erreur qui identifient clairement la catégorie de l'échec :

# Payment processing failure
- Type: Fail
  Name: PaymentFailed
  Code: "PAYMENT_DECLINED"
  Detail: "Payment gateway returned a decline response"
  End: true

# Resource not found
- Type: Fail
  Name: NotFound
  Code: "RESOURCE_NOT_FOUND"
  Detail: "The specified order does not exist"
  End: true