

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Estado de flujo de trabajo con error
<a name="state-fail"></a>

**Administración del estado y transformación de los datos**  
Obtenga información sobre la [Transmisión de datos entre estados con variables](workflow-variables.md) y la [Transformación de datos con JSONata](transforming-data.md).

Un estado `Fail` (`"Type": "Fail"`) detiene la ejecución de la máquina de estado y la marca como errónea, a menos que lo detecte un bloque `Catch`.

El estado `Fail` solo permite el uso de los campos `Type` y `Comment` del conjunto de [campos de estado comunes](statemachine-structure.md#amazon-states-language-common-fields). Además, el estado permite `Fail` los siguientes campos.

** `Cause` (opcional)**  
Cadena personalizada que describe la causa del error. Puede especificar este campo con fines operativos o de diagnóstico.  
En los estados de JSONata, también puede especificar una expresión de JSONata.

** `CausePath` (Opcional, solo JSONPath) **  
Si desea proporcionar una descripción detallada de la causa del error de forma dinámica a partir de la entrada de estado utilizando una [ruta de referencia](amazon-states-language-paths.md#amazon-states-language-reference-paths), utilice `CausePath`. Una vez resuelto, la ruta de referencia debe seleccionar un campo que contenga un valor de cadena.  
También puede especificar `CausePath` mediante una [función intrínseca](intrinsic-functions.md) que devuelva una cadena. Estos elementos intrínsecos son: [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) y [States.UUID](intrinsic-functions.md#statesuuid).  
+ Puede especificar `Cause` o `CausePath`, pero no ambos, en su definición de estado Fail.
+ Como práctica recomendada de seguridad de la información, le aconsejamos que elimine de la descripción de la causa toda la información confidencial y los detalles del sistema interno.

** `Error` (opcional)**  
Un nombre de error que pueda proporcionar para gestionar los errores mediante los campos [Retry](concepts-error-handling.md#error-handling-retrying-after-an-error) o [Catch](concepts-error-handling.md#error-handling-fallback-states). También puede proporcionar un nombre de error con fines operativos o de diagnóstico.  
En los estados de JSONata, también puede especificar una expresión de JSONata.

** `ErrorPath` (Opcional, solo JSONPath) **  
Si desea proporcionar un nombre para el error de forma dinámica a partir de la entrada de estado utilizando una [ruta de referencia](amazon-states-language-paths.md#amazon-states-language-reference-paths), utilice `ErrorPath`. Una vez resuelto, la ruta de referencia debe seleccionar un campo que contenga un valor de cadena.  
También puede especificar `ErrorPath` mediante una [función intrínseca](intrinsic-functions.md) que devuelva una cadena. Estos elementos intrínsecos son: [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) y [States.UUID](intrinsic-functions.md#statesuuid).  
+ Puede especificar `Error` o `ErrorPath`, pero no ambos, en su definición de estado Fail.
+ Como práctica recomendada de seguridad de la información, le aconsejamos que elimine del nombre del error toda la información confidencial y los detalles del sistema interno.

Como el estado `Fail` siempre cierra la máquina de estado, no existe un campo `Next` ni se requiere un campo `End`.

## Ejemplos de definición de estado Fail
<a name="fail-state-examples"></a>

En el siguiente ejemplo de definición de estado Fail se especifican valores de campo `Error` y `Cause` estáticos.

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

En el siguiente ejemplo de definición de estado Fail, se utilizan rutas de referencia de forma dinámica para resolver los valores de campo de `Error` y `Cause`.

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

En el siguiente ejemplo de definición de estado Fail, se utiliza la función intrínseca [States.Format](intrinsic-functions.md#asl-intrsc-func-generic) para especificar los valores de campo `Error` y `Cause` campo de forma dinámica.

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