Erro · Power Automate · InvalidTemplate

Erro "The template language function 'substring' parameter is out of range"

O substring começa a contar em 0 e exige que a posição inicial esteja dentro do texto. Se você pede para começar numa posição que não existe (por exemplo, a posição 5 de um texto de 3 letras), ou se pede mais caracteres do que o texto tem, o fluxo para com...

A mensagem completa

The template language function 'substring' parameter is out of range: 'start index' must be non-negative integer and should be less than the length of the string. Please see https://aka.ms/logicexpressions#substring for usage details.

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 substring começa a contar em 0 e exige que a posição inicial esteja dentro do texto. Se você pede para começar numa posição que não existe (por exemplo, a posição 5 de um texto de 3 letras), ou se pede mais caracteres do que o texto tem, o fluxo para com esse erro.

Causas mais comuns

Como corrigir

  1. Limite o tamanho do corte ao tamanho do texto: substring('abc',0,min(length('abc'),5)) devolve abc.
  2. Verifique se o texto não está vazio antes de cortar.
  3. Lembre que a primeira posição é 0.
  4. Para pegar só o começo ou o fim, as funções first, last e take também aceitam texto e evitam alguns erros de índice.

Exemplo: antes e depois

ExpressãoResultado no Power Automate
substring('abc',5,1)Erro. The template language function 'substring' parameter is out of range: 'start index' must be non-negative integer and should be less than the length of...
substring('abc',0,min(length('abc'),5))abc

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 substring conta a partir de 0 ou de 1?

De 0. O primeiro caractere está na posição 0.

Dá para pegar o restante do texto sem informar o tamanho?

Dá. Se você omitir o terceiro parâmetro, o corte vai até o fim do texto, desde que a posição inicial seja válida.

Funções relacionadas

Ferramentas e guias

Fontes

← Ver todos os erros e usar o decodificador