Oi a todos - estou tendo um problema teimoso com o comportamento de saída dupla do nó Execute Workflow quando “On Error: Continue (using error output)” está ativado. Espero que alguém tenha enfrentado isso e encontrado um padrão limpo.
Configuração
-
Um fluxo de trabalho pai chama um subfluxo de trabalho via Execute Workflow.
-
Configurações do nó Execute Workflow:
-
Mode: Run once for each item
-
Wait for Sub-Workflow Completion: ON
-
On Error: Continue (using error output)
-
-
O nó terminal do subfluxo de trabalho é uma atualização do Google Sheets.
-
O pai tem duas ramificações a jusante: caminho de sucesso (cleanup + alerta Telegram + página de conclusão do formulário) e caminho de erro (alerta de erro Telegram + página de conclusão de erro).
O comportamento que estou vendo
Tenho dois modos de falha dependendo da configuração Always Output Data no nó Execute Workflow do pai:
Caso A - Always Output Data OFF no nó Execute Workflow do pai:
-
No sucesso do subfluxo de trabalho: nó terminal (atualização do Sheets) emite 1 item com dados da linha completa. A aba Success Branch do nó Execute Workflow do pai claramente mostra o item presente. Mas os nós a jusante conectados à porta de sucesso não disparam. A execução simplesmente para no Execute Workflow sem erro e sem roteamento adicional.
-
No erro do subfluxo de trabalho: a ramificação de erro dispara corretamente com o payload de erro. Limpo.
Caso B - Always Output Data ON no nó Execute Workflow do pai:
-
No sucesso do subfluxo de trabalho: tanto a ramificação de sucesso quanto a de erro disparam (sucesso com os dados reais, mas também uma execução fantasma de alguma forma).
-
No erro do subfluxo de trabalho: ambas as ramificações disparam simultaneamente: ramificação de sucesso dispara com um item placeholder vazio
{}, ramificação de erro dispara com o payload de erro real. Ambos os caminhos a jusante executam em paralelo, o que causa alertas Telegram duplicados e páginas de conclusão de formulário conflitantes.
O que tentei
-
Alternar
Always Output Datano nó terminal Sheets do subfluxo de trabalho para ON, com oAlways Output Datado Execute Workflow do pai OFF. O nó terminal do subfluxo de trabalho confirma que emite 1 item com dados completos quando verificado no log de sub-execução. A aba Success Branch do Execute Workflow do pai também mostra esse item. Os nós a jusante ainda não disparam. -
Verificado que
Wait for Sub-Workflow Completionestá ON. -
Verificada a fiação na tela - porta de sucesso para nó de cleanup, porta de erro para nó de alerta. Sem trocas acidentais.
-
Tentei os modos “Run once for each item” e “Run once with all items”. Mesmo resultado.
-
Redesenhei as linhas de conector da porta de sucesso. Sem mudança.
O que quero
O padrão de saída dupla padrão que a maioria das pessoas parece usar:
-
Subfluxo de trabalho tem sucesso → apenas a ramificação de sucesso dispara a jusante → cleanup + alerta de sucesso são executados.
-
Subfluxo de trabalho lança erro → apenas a ramificação de erro dispara a jusante → alerta de erro + UI de recuperação são executados.
-
Nunca ambos ao mesmo tempo.
Perguntas
-
Continue (using error output)é conhecido por se comportar mal quando o nó terminal do subfluxo de trabalho retorna itens mas a porta Execute Workflow do pai não propaga para os nós a jusante? Existe uma versão específica do n8n Cloud onde isso é corrigido? -
Existe um padrão canônico que as pessoas usam para obter roteamento duplo limpo - talvez com um nó Merge, uma verificação IF em
$json.error, ou alguma solução estrutural que estou perdendo?
Qualquer dica é bem-vinda. Fico feliz em compartilhar mais detalhes do que mais seria necessário (como código JSON, capturas de tela do fluxo de trabalho e outras).
Obrigado.