Erro ‘Invalid Form Body’ no Discord em Comandos de Barra: Diagnóstico
🔍 WiseChecker

Erro ‘Invalid Form Body’ no Discord em Comandos de Barra: Diagnóstico

Ao digitar um comando de barra no Discord e pressionar Enter, você espera que a ação do bot ou servidor seja executada imediatamente. Em vez disso, aparece uma mensagem de erro vermelha: “Invalid Form Body”. Esse erro impede a execução do comando e geralmente não dá uma direção clara sobre o que deu errado. A causa é quase sempre uma incompatibilidade entre o que seu cliente Discord envia e o que o servidor ou bot espera, como uma opção obrigatória ausente, um tipo de dado incorreto ou um limite de taxa atingido. Este artigo explica os motivos técnicos por trás do erro “Invalid Form Body” e fornece métodos passo a passo para diagnosticá-lo e corrigi-lo.

Principais Conclusões: Como Diagnosticar e Corrigir o Erro “Invalid Form Body” do Discord

  • Verifique o texto exato do erro no console do cliente: Pressione Ctrl+Shift+I para abrir as Ferramentas do Desenvolvedor e encontre o campo específico que está causando o erro.
  • Confirme se todas as opções obrigatórias foram preenchidas: Argumentos ausentes, como um ID de usuário ou nome de canal, disparam esse erro imediatamente.
  • Limpe o cache do Discord e reinicie o aplicativo: Dados locais corrompidos podem enviar corpos de comando malformados para o servidor.

Por que o Discord Retorna “Invalid Form Body” para Comandos de Barra

O sistema de comandos de barra do Discord usa uma chamada de API estruturada. Quando você digita um comando como /ban e pressiona Enter, seu cliente envia um objeto JSON para a API do Discord. Esse JSON deve seguir um esquema estrito definido pelo servidor ou desenvolvedor do bot. Se algum campo nesse JSON tiver o tipo errado, um valor inesperado ou estiver completamente ausente, o Discord rejeita a solicitação com “Invalid Form Body”.

O erro é uma falha de validação do lado do cliente. A API do Discord ainda não processou seu comando. Em vez disso, o gateway da API verifica a estrutura da sua solicitação antes que ela chegue ao bot. As causas comuns incluem:

  • Uma opção obrigatória está ausente no comando
  • O valor de uma opção é do tipo errado, por exemplo, uma string onde se espera um inteiro
  • O corpo do comando excede os limites de tamanho do Discord para um comando de barra
  • O cliente está enviando uma definição de comando desatualizada ou corrompida devido a um bug de cache
  • A definição do comando do bot mudou, mas seu cliente não foi atualizado

Na maioria dos casos, a correção está do seu lado como usuário. Você não precisa modificar o código do bot. O erro aparece no cliente Discord como uma barra vermelha no topo da janela de chat, e você pode ver os detalhes técnicos completos no console do navegador.

O que a Mensagem de Erro Realmente Significa

A string de erro completa geralmente inclui um nome de campo, por exemplo: “Invalid Form Body: In options[0].value: This field is required.” Isso indica exatamente qual opção está ausente ou incorreta. Se o erro não incluir um nome de campo, o problema está no nível superior do corpo do comando, como um nome de comando inválido ou uma propriedade obrigatória ausente, como type.

Passos para Diagnosticar e Corrigir o Erro “Invalid Form Body”

Estes passos se aplicam ao Discord no Windows, macOS e versão web. Os mesmos princípios funcionam para dispositivos móveis, mas o acesso às Ferramentas do Desenvolvedor é diferente.

  1. Abra as Ferramentas do Desenvolvedor do Discord
    Pressione Ctrl+Shift+I no Windows ou Cmd+Option+I no macOS. Isso abre o painel de ferramentas do desenvolvedor do navegador. Se você estiver usando o aplicativo de desktop, funciona da mesma forma porque o Discord é construído no Electron.
  2. Reproduza o erro
    Digite o comando de barra que causou o erro e pressione Enter. Não feche as Ferramentas do Desenvolvedor. O erro aparecerá na guia Console como uma mensagem vermelha. Clique na pequena seta para expandir o erro e ver a resposta JSON completa da API do Discord. Procure um campo chamado errors ou message.
  3. Identifique o campo ausente ou inválido
    No erro expandido, encontre o nome do campo que o Discord rejeitou. Por exemplo, se o erro disser options[0].value está ausente, você precisa fornecer um valor para a primeira opção do comando. Se disser que type é inválido, você pode ter digitado um nome de comando que não existe.
  4. Verifique a sintaxe do comando na documentação do bot
    Abra o site do bot ou use o comando /help para ver os parâmetros exatos necessários. Alguns bots exigem um inteiro, uma menção de usuário ou um formato de texto específico. Por exemplo, um comando pode exigir /warn @usuário motivo, mas você digitou /warn usuário sem o símbolo @.
  5. Limpe o cache do Discord e reinicie
    Pressione Ctrl+R para recarregar o cliente Discord. Isso limpa o cache na memória. Se o erro persistir, feche o Discord completamente e exclua a pasta de cache. No Windows, pressione Windows+R, digite %appdata%/discord/Cache e exclua todos os arquivos dentro. No macOS, vá para ~/Library/Application Support/discord/Cache e exclua o conteúdo da pasta. Reinicie o Discord e tente o comando novamente.
  6. Atualize o Discord para a versão mais recente
    Clique no ícone de engrenagem ao lado do seu nome de usuário e vá para Configurações do Usuário > Sobre. O Discord verificará automaticamente se há atualizações. Se houver uma atualização disponível, ela será baixada e o aplicativo reiniciará. Clientes desatualizados podem enviar corpos de comando malformados.
  7. Teste o comando em um servidor diferente
    Se o comando funcionar em um servidor, mas não em outro, o problema provavelmente é uma permissão específica do servidor ou configuração do bot. O bot pode ter sido atualizado em um servidor, mas não no outro. Peça ao administrador do servidor para reconvidar o bot com as permissões mais recentes.

Se o Discord Ainda Mostrar “Invalid Form Body” Após a Correção Principal

Às vezes, o erro persiste mesmo depois de você ter verificado a sintaxe do comando e limpo o cache. Os cenários a seguir cobrem causas menos comuns e suas soluções.

O Bot Não Registrou Seus Comandos Corretamente

Se você é um desenvolvedor de bot ou administrador de servidor, o bot pode ter sido registrado com uma definição de comando que contém um campo inválido. Por exemplo, uma opção obrigatória pode ter um valor padrão que não corresponde ao seu tipo. Registre novamente o comando usando o Portal do Desenvolvedor do Discord ou o código do bot. Execute o script de registro do comando novamente após corrigir o esquema JSON.

O Limite de Taxa da API do Discord Foi Atingido

Se você enviar muitos comandos de barra em rápida sucessão, o Discord pode retornar “Invalid Form Body” como uma resposta genérica de limite de taxa. Aguarde 30 segundos e tente um comando. Verifique o cabeçalho X-RateLimit-Remaining na guia Rede das Ferramentas do Desenvolvedor. Se for zero, você atingiu o limite de taxa. Reduza o uso de comandos.

O Comando Contém Caracteres Especiais que o Discord Não Consegue Interpretar

Alguns bots aceitam texto com caracteres especiais como emojis ou símbolos Unicode. No entanto, se a opção do comando esperar uma string simples e você incluir uma quebra de linha ou um caractere de tabulação, o corpo JSON pode quebrar. Digite o comando sem formatação especial. Use texto simples em português sem quebras de linha.

Tipos de Erro de Comando de Barra do Discord: Lado do Cliente vs Lado do Servidor

Item Erro do Lado do Cliente Erro do Lado do Servidor
Descrição Seu cliente Discord envia um corpo JSON malformado para a API O bot ou a API do Discord processa o comando, mas retorna um erro
Mensagem Típica “Invalid Form Body” com um nome de campo específico “Interaction failed” ou “Command returned an error”
Causa Raiz Opção obrigatória ausente, tipo de dado errado, cache corrompido Bug no código do bot, permissões ausentes, timeout do servidor
Correção Corrija a sintaxe do comando, limpe o cache, atualize o cliente Entre em contato com o desenvolvedor do bot, verifique os logs do bot, reconvide o bot

O erro “Invalid Form Body” é sempre um problema do lado do cliente. Se você vir “Interaction failed” em vez disso, o comando chegou ao bot, mas o bot não conseguiu processá-lo. Isso é um problema do lado do servidor que requer que o desenvolvedor do bot corrija.

Seguindo as etapas de diagnóstico acima, você pode resolver o erro “Invalid Form Body” rapidamente. Comece verificando o console das Ferramentas do Desenvolvedor para ver o campo exato que está causando o problema. Depois, confirme a sintaxe do comando na documentação do bot. Se o problema persistir, limpe o cache do Discord e reinicie o aplicativo. Para desenvolvedores de bot, certifique-se de que o JSON de registro do comando corresponda exatamente ao esquema da API do Discord. Após aplicar essas correções, você poderá usar comandos de barra sem interrupções.