Erro · Power Automate · InvalidTemplate

Erro "Attempt to divide an integral or decimal value by zero in function 'div'"

O divisor da conta era zero. As funções div e mod não devolvem infinito nem vazio: o fluxo para com InvalidTemplate. A mensagem vale para as duas funções, e só muda o nome entre aspas simples no final.

A mensagem completa

Attempt to divide an integral or decimal value by zero in function 'div'.

No histórico de execuções, essa mensagem aparece dentro de uma frase maior: Unable to process template language expressions in action 'NOME_DA_ACAO' inputs at line '0' and column '0': '...'. O nome da ação é o da ação que contém a expressão e muda de fluxo para fluxo. O trecho em destaque acima é o que identifica o problema.

Executamos expressões que geram este erro em um fluxo de teste do Power Automate, sem conectores e sem dados reais, em 09/11/2026. O texto exato pode variar entre ambientes e versões do serviço.

O que significa

O divisor da conta era zero. As funções div e mod não devolvem infinito nem vazio: o fluxo para com InvalidTemplate. A mensagem vale para as duas funções, e só muda o nome entre aspas simples no final.

Causas mais comuns

Como corrigir

  1. Antes da conta, compare o divisor com zero: if(equals(divisor,0), 0, div(valor,divisor)).
  2. Escolha o valor que faz sentido para o seu caso quando o divisor é zero (0, vazio ou um aviso), em vez de deixar o fluxo falhar.
  3. Em listas, verifique length(lista) antes de calcular médias.
  4. Se o divisor vem de outro cálculo, confira por que ele ficou zerado.

Exemplo: antes e depois

ExpressãoResultado no Power Automate
div(1,0)Erro. Attempt to divide an integral or decimal value by zero in function 'div'.
if(equals(0,0),0,div(1,0))0

Os dois resultados vêm da execução real de 09/11/2026, e um teste automático do Me Ajuda Flow confere que o texto desta página é idêntico ao registrado.

Como evitar que o erro volte

Perguntas frequentes

O if calcula o ramo que não é escolhido?

No teste real, if(equals(0,0),0,div(1,0)) devolveu 0 sem erro, então o ramo da divisão não foi calculado quando a condição escolheu o outro.

div(75,200) dá 0.375?

Não. Com inteiros, div devolve um inteiro, então div(75,200) é 0. Para obter o decimal, converta um dos lados com float.

Funções relacionadas

Ferramentas e guias

Fontes

← Ver todos os erros e usar o decodificador