

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Estado de falha do fluxo de trabalho
<a name="state-fail"></a>

**Gerenciar estados e transformar dados**  
Saiba mais sobre como [transmitir dados entre estados com variáveis](workflow-variables.md) e [transformar dados com JSONata](transforming-data.md).

Um estado `Fail` (`"Type": "Fail"`) interrompe a execução da máquina de estado e identifica isso como falha, a menos que seja capturada por um bloqueio de `Catch`.

O estado `Fail` só permite o uso dos campos `Type` e `Comment` do conjunto de [campos de estado comuns](statemachine-structure.md#amazon-states-language-common-fields). Além disso, o estado `Fail` permite os campos a seguir.

** `Cause` (opcional)**  
Uma sequência de caracteres personalizada que descreve a causa do erro. Você pode especificar esse campo para fins operacionais ou de diagnóstico.  
Nos estados JSONata, também é possível especificar uma expressão JSONata.

** `CausePath` (opcional, somente JSONPath) **  
Para fornecer dinamicamente uma descrição detalhada sobre a causa do erro com base na entrada de estado usando um [caminho de referência](amazon-states-language-paths.md#amazon-states-language-reference-paths), use `CausePath`. Quando resolvido, o caminho de referência deve selecionar um campo que contenha um valor de string.  
Você também pode especificar `CausePath` usando uma [função intrínseca](intrinsic-functions.md) que retorna uma string. Essas funções intrínsecas são: [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) e [States.UUID](intrinsic-functions.md#statesuuid).  
+ Você pode especificar `Cause` ou `CausePath`, mas não ambos, na definição do estado Falha.
+ Como prática recomendada de segurança da informação, recomendamos remover informações confidenciais ou detalhes do sistema interno na descrição da causa.

** `Error` (opcional)**  
Um nome de erro que você pode fornecer para realizar o tratamento de erros usando os campos [Tentar novamente](concepts-error-handling.md#error-handling-retrying-after-an-error) ou [Capturar](concepts-error-handling.md#error-handling-fallback-states). Você também pode fornecer um nome de erro para fins operacionais ou de diagnóstico.  
Nos estados JSONata, também é possível especificar uma expressão JSONata.

** `ErrorPath` (opcional, somente JSONPath) **  
Para fornecer dinamicamente um nome para o erro a partir da entrada de estado usando um [caminho de referência](amazon-states-language-paths.md#amazon-states-language-reference-paths), use `ErrorPath`. Quando resolvido, o caminho de referência deve selecionar um campo que contenha um valor de string.  
Você também pode especificar `ErrorPath` usando uma [função intrínseca](intrinsic-functions.md) que retorna uma string. Essas funções intrínsecas são: [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) e [States.UUID](intrinsic-functions.md#statesuuid).  
+ Você pode especificar `Error` ou `ErrorPath`, mas não ambos, na definição do estado Falha.
+ Como prática recomendada de segurança da informação, recomendamos remover informações confidenciais ou detalhes do sistema interno no nome do erro.

Como os estados `Fail` sempre saem da máquina de estado, eles não têm nenhum campo `Next` nem requerem um campo `End`.

## Exemplos de definição de estado Falha
<a name="fail-state-examples"></a>

O exemplo de definição de estado Falha a seguir especifica valores estáticos dos campos `Error` e `Cause`.

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

O exemplo de definição do estado Falha a seguir usa dinamicamente caminhos de referência para resolver os valores dos campos `Error` e `Cause`.

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

O exemplo de definição do estado Falha a seguir usa a função intrínseca [States.Format](intrinsic-functions.md#asl-intrsc-func-generic) para especificar dinamicamente os valores dos campos `Error` e `Cause`.

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