Todos os produtos
Search
Central de documentação

CloudFlow:Fail state

Última atualização: Jun 28, 2026

O estado Fail encerra um fluxo com um erro personalizado, semelhante ao raise em Python ou ao throw em Java. Quando um fluxo atinge um estado Fail, todos os estados no escopo atual param de ser executados e o fluxo termina.

Em uma definição de fluxo típica, cada estado transita para o próximo após a conclusão. Um estado Fail interrompe esse padrão: nenhum estado subsequente é executado.

Nota

Diferentemente de um estado

Succeed

, que aguarda a conclusão do escopo atual antes de encerrar o fluxo, um estado

Fail

termina o fluxo com um erro.

Atributos

Atributo

Tipo

Obrigatório

Descrição

Exemplo

Name

string

Sim

Nome do estado.

my state

Description

string

Não

Descrição do estado.

describe it here

Type

string

Sim

Deve ser Fail.

Fail

InputConstructor

map[string]any

Não

Construtor de entrada. Consulte InputConstructor.

--

OutputConstructor

map[string]any

Não

Construtor de saída. Consulte OutputConstructor.

--

Code

string

Não

Código de erro para identificação programática. Use Code para categorizar falhas e facilitar diagnósticos ou tratamento de erros.

customBizCode

Detail

string

Sim

Descrição do erro legível por humanos.

my custom error

Todo estado Fail exige um valor Detail que descreva o erro. O campo Code é opcional, mas recomendado, pois fornece um identificador legível por máquina que facilita o diagnóstico de falhas.

Nota

Dica:

Evite expor detalhes internos do sistema ou informações sensíveis nos valores de

Code

ou

Detail

, pois esses valores podem ficar visíveis nas saídas de erro.

Relação com o estado Pass

Um estado Fail comporta-se como um estado Pass com End: true, mas também retorna um erro. Ambos encerram o fluxo no ponto atual; contudo, o estado Fail devolve adicionalmente um erro especificado por Code e Detail.

Exemplos

Encerrar um fluxo com base em uma condição

Este fluxo usa um estado Choice para avaliar uma condição de entrada. Se $Input.status for igual a "true", o fluxo prossegue para Pass1 e conclui normalmente. Caso contrário, segue para a ramificação padrão e termina com um estado 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

Quando Choice1 avalia a condição e nenhuma ramificação corresponde, o fluxo transita para Fail1. Todo o fluxo termina com o código de erro customBizCode.

Retornar um erro estático

Em sua forma mais simples, um estado Fail requer um valor Detail e, opcionalmente, um Code:

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

Usar códigos de erro descritivos

Escolha códigos de erro que identifiquem claramente a categoria da falha:

# 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