Depurando uma execução de flow
Quando um flow se comporta mal, você não lê logs num terminal: a execução é desenhada no próprio flow. Cada passo mostra o status e o tempo, o painel lateral guarda o que entrou e o que saiu, e algumas ferramentas levam direto à causa — a primeira falha, o passo lento, a única iteração de loop entre quinhentas que quebrou.
- Ler uma execução no canvas e na aba Execução
- Rodar de novo só o que falhou com Tentar de novo a partir da falha
- Achar passos lentos e esperas na Linha do tempo
- Ir direto às iterações de loop com falha e testar um passo com entradas reais
A execução está no canvas
Clique em Executar Flow (ou escolha uma execução na aba Execuções) e o canvas passa a mostrar aquela execução: o cabeçalho diz Mostrando a execução, cada passo fica verde, vermelho, âmbar ou tracejado ao terminar, e a duração aparece no nó. O cabeçalho de um loop conta a própria história — 500 itens · 5 por vez, depois 498 ok · 2 com falha. Voltar a editar (ou Limpar execução) tira a execução do canvas para você voltar a editar.
As cores significam a mesma coisa em todo lugar: vermelho falhou, âmbar falhou mas o flow seguiu (Continuar mesmo com erro), tracejado pulado ou não alcançado, uma marca de cache para um resultado reaproveitado do cache.
A aba Execução
A aba Execução do painel lateral é “a execução no canvas: dados, logs e linha do tempo.” No topo, uma barra de progresso conta 7 de 9 passos (ou parou em Fetch prices). Quando algo falhou, um aviso de erro fica acima de tudo: Falhou (ou Falhou · o flow seguiu), em Fetch prices, a mensagem, Copiar erro, e +2 outras falhas › quando há várias. Dentro de um loop ele acrescenta iteração 3 de 20 e Ir para a iteração com falha.
Dois botões iniciam uma nova execução a partir desta:
| Botão | O que faz |
|---|---|
| Tentar de novo a partir da falha | Uma nova execução com as mesmas entradas que reaproveita todo passo que já deu certo — só os que falharam rodam de novo, com o flow como está agora. Passos reaproveitados mostram Reaproveitado da execução repetida. |
| Rodar de novo | Uma nova execução do flow inteiro com as entradas desta. |
O detalhe de um passo
Clique num passo do canvas da execução para abrir o detalhe: Dados (Entrada de Fetch prices e Saída), Bindings (de onde cada entrada tirou o valor), Logs (o que foi impresso, em ordem), Código (o código exato que esta execução rodou), além de Iterações num loop e Linha do tempo. Valores secretos aparecem como ••• (Valor secreto — não registrado). Um passo de script com falha pode ir para o assistente do flow com Corrigir com IA.
A Linha do tempo
A Linha do tempo mostra quando cada passo rodou e quanto esperou — da execução inteira, ou das iterações de um passo. Cada barra tem duas partes: esperou (na fila, esperando um worker livre) e executou. A duração do passo conta só a parte de execução, então um passo que esperou 2 s e rodou 40 ms mostra 40 ms, com uma marca separada esperou 2 s. Uma marca de inicialização a frio indica que um interpretador novo precisou iniciar antes de o código rodar — também fora da duração.
- Faixas são concorrência real: barras lado a lado em faixas diferentes rodaram ao mesmo tempo (ramos em paralelo, um loop em paralelo). O rótulo diz faixa 2.
- Um trecho Espera da nova tentativa é a pausa antes de outra tentativa de um passo com nova tentativa.
- Uma parte esperou longa em muitos passos indica workers ocupados, não código lento — veja workers.
Iterações de loop
Um loop de quinhentos itens é um nó só, mas cada iteração é registrada. No canvas, o cabeçalho do loop tem a pílula Próxima falha · #37 · 1 de 2: clique para levar o corpo à próxima iteração com falha. A aba Iterações do loop é uma tabela — Item, Status, Duração — com Só com falha para ficar só com as quebradas e Mostrar todas para voltar; escolha uma linha para ver os passos daquela iteração no canvas.
Depurando enquanto edita
- Espie a última execução
Selecione um passo no editor: se a última execução do flow chegou nele, aparecem dois chips abaixo dele, In e Out. Eles mostram o que o passo recebeu ou devolveu na última execução, sem sair do editor; num passo dentro de um loop, escolha a iteração. Abrir a execução mostra a execução inteira.
- Teste até aqui
Passe o mouse num passo e clique no ▶ dele, ou clique com o botão direito e escolha Testar até aqui (“Rodar o flow e parar depois deste passo”). Tudo acima roda de verdade; nada abaixo roda — o jeito mais rápido de conferir a saída de um passo antes de montar o resto.
- Teste um passo com entradas reais
A aba Rodar teste de um passo roda só aquele passo. Usar entradas da última execução preenche os valores de teste com o que o passo realmente recebeu da última vez — num passo dentro de um loop, o item e o índice reais de uma iteração.
A aba Execuções
Execuções lista todas as execuções deste flow, da mais nova para a mais antiga — do editor, de agendamentos, de chamadas de API, de gatilhos ou de outros flows. Escolha uma para vê-la no canvas. A página Execuções do projeto lista todos os flows e scripts juntos, com filtros, e mostra as execuções filhas de um flow dentro dele.
O que fica guardado
- Um valor de passo acima de 64 KB é cortado na visão ao vivo (marcado como truncado) e carregado inteiro quando você abre.
- Entradas secretas nunca são registradas; saídas são registradas como foram devolvidas — não devolva segredos.
- Tentar de novo a partir da falha roda o flow como está agora: se você mudou um passo que já tinha dado certo, ele ainda é reaproveitado, não roda de novo.