Pular para o conteúdo principal

Tratamento de Erros

Ao projetar a lógica de um fluxo de trabalho, é uma boa prática considerar cuidadosamente os erros que podem ocorrer e configurar formas elegantes de tratá-los. Ao configurar um fluxo de trabalho de erro, você pode controlar como o n8n responde quando uma execução falha.

Depuração de erros

Para depurar execuções com falha, você pode:

  • Verificar seus registros de execução, incluindo os de um único fluxo de trabalho ou de todos os fluxos de trabalho aos quais você tem acesso. Também é possível carregar os dados da última execução no fluxo de trabalho atual.
  • Ativar o registro em log.

Criar e configurar um fluxo de trabalho de erro

Para cada fluxo de trabalho, você pode configurar um fluxo de trabalho de erro nas Configurações do fluxo de trabalho, que será executado automaticamente sempre que uma execução falhar. Isso permite, por exemplo, enviar notificações por e-mail ou alertas no Slack quando um erro ocorrer. O fluxo de trabalho de erro deve começar com um nó do tipo Error Trigger.

Vários fluxos de trabalho podem compartilhar o mesmo fluxo de trabalho de erro.

  1. Crie um novo fluxo de trabalho, usando o nó Error Trigger como primeiro nó.
  2. Dê um nome ao fluxo de trabalho, por exemplo: Error Handler (tratador de erros).
  3. Clique em Salvar.
  4. No fluxo de trabalho principal onde deseja usar esse tratador de erros:
    1. Clique em Opções Ícone do menu Opções > Configurações.
    2. Em fluxo de trabalho de erro, selecione o fluxo de trabalho que você acabou de criar (por exemplo, Error handler).
    3. Clique em Salvar. A partir de agora, sempre que esse fluxo de trabalho falhar, o fluxo de trabalho de erro associado será executado automaticamente.

Dados de erro

Os dados de erro padrão recebidos pelo nó Error Trigger são os seguintes:

[
{
"execution": {
"id": "...",
"url": "...",
"retryOf": null,
"error": {
"name": "NodeOperationError",
"message": "",
"cause": {},
"node": {}
},
"lastNodeExecuted": "Node With Error",
"mode": "manual"
},
"workflow": {}
}
]

Os seguintes campos nem sempre estarão presentes:

  • execution.id: requer que a execução seja salva no banco de dados. Se o erro ocorrer no nó gatilho do fluxo de trabalho principal (antes que a execução seja iniciada), este campo não existirá.
  • execution.url: também requer que a execução seja salva no banco de dados. Não estará presente se o erro ocorrer no nó gatilho do fluxo de trabalho principal.
  • execution.retryOf: só existe se a execução atual for uma tentativa de repetição de uma execução anterior com falha.

Se o erro se originar no nó gatilho do fluxo de trabalho principal (e não em etapas posteriores), a estrutura dos dados enviados ao fluxo de trabalho de erro será diferente: o campo execution conterá menos informações, enquanto o campo trigger terá mais detalhes:

{
"trigger": {
"error": {
"name": "WorkflowActivationError",
"cause": {},
"timestamp": 1654609328787,
"message": "",
"node": {}
},
"mode": "trigger"
},
"workflow": {}
}

Usar o nó Stop And Error para forçar uma falha na execução

Depois de criar e configurar um fluxo de trabalho de erro, o n8n o executará automaticamente sempre que uma falha ocorrer — normalmente devido a configurações incorretas nos nós ou ao esgotamento de recursos durante a execução.

Você também pode adicionar um nó Stop And Error ao seu fluxo de trabalho para forçar intencionalmente uma falha sob condições específicas definidas por você, acionando assim o fluxo de trabalho de erro.