

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# État du flux de travail défaillant
<a name="state-fail"></a>

**Gestion de l'état et transformation des données**  
Découvrez comment [transmettre des données entre états à l'aide de variables](workflow-variables.md) et [transformer des données avec JSONata](transforming-data.md).

Un `Fail` state (`"Type": "Fail"`) arrête l'exécution de la machine à états et la marque comme une défaillance, sauf si elle est interceptée par un `Catch` bloc.

L'état `Fail` autorise uniquement l'utilisation de champs `Type` et `Comment` à partir de l'ensemble de [champs d'état courants](statemachine-structure.md#amazon-states-language-common-fields). En outre, l'état `Fail` autorise les champs suivants :

** `Cause` (facultatif)**  
Chaîne personnalisée qui décrit la cause de l'erreur. Vous pouvez spécifier ce champ à des fins opérationnelles ou diagnostiques.  
Dans JSONata les états, vous pouvez également spécifier une JSONata expression.

** `CausePath`(Facultatif, JSONPath uniquement) **  
Si vous souhaitez fournir une description détaillée de la cause de l'erreur de manière dynamique à partir de l'entrée d'état à l'aide d'un [chemin de référence](amazon-states-language-paths.md#amazon-states-language-reference-paths), utilisez`CausePath`. Une fois résolu, le chemin de référence doit sélectionner un champ contenant une valeur de chaîne.  
Vous pouvez également le spécifier `CausePath` à l'aide d'une [fonction intrinsèque](intrinsic-functions.md) qui renvoie une chaîne. Ces éléments intrinsèques sont les suivants : [States.Format](intrinsic-functions.md#asl-intrsc-func-generic),,, [States.JsonToString](intrinsic-functions.md#jsontostring) [States.ArrayGetItem](intrinsic-functions.md#arraygetitem) [States.Base64Encode](intrinsic-functions.md#base64encode)[States.Base64Decode](intrinsic-functions.md#base64decode), [States.Hash](intrinsic-functions.md#asl-intrsc-func-uuid-generate) et. [States.UUID](intrinsic-functions.md#statesuuid)  
+ Vous pouvez spécifier l'un `Cause` ou l'autre`CausePath`, mais pas les deux dans votre définition de l'état d'échec.
+ En tant que bonne pratique en matière de sécurité des informations, nous vous recommandons de supprimer toutes les informations sensibles ou les détails du système interne de la description de la cause.

** `Error` (facultatif)**  
Nom d'erreur que vous pouvez fournir pour effectuer la gestion des erreurs à l'aide des champs [Retry](concepts-error-handling.md#error-handling-retrying-after-an-error) ou [Catch](concepts-error-handling.md#error-handling-fallback-states). Vous pouvez également fournir un nom d'erreur à des fins opérationnelles ou de diagnostic.  
Dans JSONata les états, vous pouvez également spécifier une JSONata expression.

** `ErrorPath`(Facultatif, JSONPath uniquement) **  
Si vous souhaitez attribuer un nom à l'erreur de manière dynamique à partir de l'entrée d'état à l'aide d'un [chemin de référence](amazon-states-language-paths.md#amazon-states-language-reference-paths), utilisez`ErrorPath`. Une fois résolu, le chemin de référence doit sélectionner un champ contenant une valeur de chaîne.  
Vous pouvez également le spécifier `ErrorPath` à l'aide d'une [fonction intrinsèque](intrinsic-functions.md) qui renvoie une chaîne. Ces éléments intrinsèques sont les suivants : [States.Format](intrinsic-functions.md#asl-intrsc-func-generic),,, [States.JsonToString](intrinsic-functions.md#jsontostring) [States.ArrayGetItem](intrinsic-functions.md#arraygetitem) [States.Base64Encode](intrinsic-functions.md#base64encode)[States.Base64Decode](intrinsic-functions.md#base64decode), [States.Hash](intrinsic-functions.md#asl-intrsc-func-uuid-generate) et. [States.UUID](intrinsic-functions.md#statesuuid)  
+ Vous pouvez spécifier l'un `Error` ou l'autre`ErrorPath`, mais pas les deux dans votre définition de l'état d'échec.
+ En tant que bonne pratique en matière de sécurité des informations, nous vous recommandons de supprimer toutes les informations sensibles ou les détails du système interne du nom de l'erreur.

Comme les états `Fail` quittent toujours la machine d'état, ils n'ont pas de champ `Next` ni ne nécessitent un champ `End`.

## Exemples de définition de l'état d'échec
<a name="fail-state-examples"></a>

L'exemple de définition de l'état Fail suivant spécifie des valeurs statiques `Error` et des valeurs de `Cause` champ.

```
"FailState": {
  "Type": "Fail",
  "Cause": "Invalid response.",
  "Error": "ErrorA"
}
```

L'exemple de définition de l'état d'échec suivant utilise des chemins de référence de manière dynamique pour résoudre les valeurs des `Cause` champs `Error` et.

```
"FailState": {
  "Type": "Fail",
  "CausePath": "$.Cause",
  "ErrorPath": "$.Error"
}
```

L'exemple de définition de l'état Fail suivant utilise la fonction intrinsèque [States.Format](intrinsic-functions.md#asl-intrsc-func-generic) pour spécifier les valeurs des `Cause` champs `Error` et de manière dynamique.

```
"FailState": {
  "Type": "Fail",
  "CausePath": "States.Format('This is a custom error message for {}, caused by {}.', $.Error, $.Cause)",
  "ErrorPath": "States.Format('{}', $.Error)"
}
```