Como é possível um nó não ser executado?

Descreva o problema/erro/pergunta
Tenho um nó que se divide em duas ramificações paralelas. Cada ramificação começa com um nó Data Table “Get”, e ambos os nós Get recebem exatamente o mesmo item de entrada do nó pai compartilhado.
Um desses nós Get paralelos funciona perfeitamente. O outro simplesmente não executa. O engraçado é que a única diferença entre os dois nós é a tabela para a qual apontam. Tudo mais é idêntico, mesma entrada, mesma operação, mesmas configurações.
Já verifiquei as coisas óbvias:

  • A tabela para a qual o nó com falha aponta foi verificada e existe.
  • Os dados dentro dessa tabela foram verificados, estão lá.
  • Adicionei uma condição (filtro) ao nó, não ajudou.
  • Tentei reposicionar o nó na tela, não ajudou.
  • Suspeitei que o nó simplesmente não tivesse tempo suficiente para executar (algum tipo de temporização/corrida), então verifiquei isso cuidadosamente. Não é isso.
  • Reconstruí o nó do zero, não ajudou.
  • Reconectei-o à tabela, não ajudou.
  • Mudei a seleção da tabela de „Escolher da lista

@pohgen não é o nó, é a ordem de execução de branches do n8n. Desde a v1.0, o n8n executa branches paralelos um de cada vez, de cima para baixo pela posição no canvas, terminando um completamente antes do próximo.

Validate Input se ramifica para três Gets. O n8n executa o superior, depois o do meio (Get Routing Rows) e toda sua cadeia a jusante incluindo o nó que faz $(‘Get Email Aliases’).all(), e só depois o branch inferior. Portanto, aquela referência é acionada antes de Get Email Aliases ter executado, retorna vazio, e o nó parece que nunca foi executado. Movê-lo ~10 nós para baixo o coloca no branch principal à frente da referência, então ele é executado primeiro, esse é o efeito de posição.

Solução: não faça referências entre branches paralelos. Coloque Get Email Aliases inline antes de onde você o usa, ou adicione um nó Merge para que todos os branches terminem antes que qualquer coisa a jusante seja executada, o que a documentação do n8n recomenda para isso.

Oi @pohgen

Para corrigir isso adequadamente e manter seu fluxo de trabalho limpo, você deve informar explicitamente ao n8n que os dados das ramificações paralelas são necessários ao juntá-los novamente.

  1. Adicione um nó Merge após suas ramificações paralelas.
  2. Conecte a saída de sua ramificação „funcionando" (por exemplo, Get All Candidate Templates) à primeira entrada do nó Merge.
  3. Conecte a saída de sua ramificação „falhando" (por exemplo, Get Routing Rows) à segunda entrada do nó Merge.
  4. Defina o modo do nó Merge como „Aguardar a chegada de todas as entradas" (ou „Combinar" se você estiver mesclando dados).
  5. Coloque seu nó downstream após este nó Merge.

Ao fazer isso, você cria uma conexão física que “protege” a ramificação de ser removida, garantindo que o mecanismo a reconheça como uma parte necessária da execução.

Isso ajuda?