Como Resolver o Erro 50035 do Discord: Invalid Form Body ao Enviar Embed
🔍 WiseChecker

Como Resolver o Erro 50035 do Discord: Invalid Form Body ao Enviar Embed

Ao enviar um embed para um canal do Discord usando um bot ou webhook, você pode ver o erro 50035 Invalid Form Body. Esse erro significa que os dados do embed fornecidos não correspondem ao que o Discord espera. O problema quase sempre é causado por um campo muito longo, falta de uma propriedade obrigatória ou uso de tipo de dado incorreto. Este artigo explica as causas exatas do erro 50035 e fornece correções passo a passo para ajustar seu payload de embed.

Principais Conclusões: Corrigindo o Erro 50035 do Discord ao Enviar Embed

  • Limites de caracteres dos campos do embed: Título máximo 256 caracteres, descrição máxima 4096 caracteres, cada nome de campo máximo 256 caracteres, cada valor de campo máximo 1024 caracteres.
  • Estrutura do objeto embed: O objeto embed deve ser um objeto JSON com chaves válidas como title, description, fields, color — sem chaves extras ou com erros de digitação.
  • Endpoint de execução do webhook: Ao usar um webhook, o embed deve estar dentro de um array sob a chave embeds, não enviado como objeto de nível superior.

ADVERTISEMENT

Por que o Discord Retorna o Erro 50035 para Envios de Embed

A API do Discord valida cada payload de embed contra regras rigorosas. O erro 50035 é uma falha de validação. A API retorna esse erro quando pelo menos uma das seguintes condições é verdadeira:

Limites de Comprimento de Campo Excedidos

Cada campo do embed tem um número máximo de caracteres. Se você enviar um título com mais de 256 caracteres, uma descrição com mais de 4096 caracteres, um nome de campo com mais de 256 caracteres ou um valor de campo com mais de 1024 caracteres, a API rejeita o embed. A mensagem de erro geralmente especifica qual campo está muito longo, por exemplo, “title: Must be 256 or fewer in length.”

Campos Obrigatórios Ausentes ou Tipos de Dados Incorretos

O objeto embed requer uma estrutura válida. Você não pode enviar uma string onde um objeto é esperado. Por exemplo, o campo author deve ser um objeto com uma propriedade name, não uma string simples. Da mesma forma, o campo footer deve ser um objeto com uma propriedade text. Se você omitir a propriedade name do objeto author, a API retorna 50035.

Estrutura Incorreta do Embed para Webhooks

Ao enviar um embed via webhook, o embed deve ser colocado dentro de um array sob a chave embeds. Enviar o embed diretamente como objeto JSON de nível superior causa o erro 50035. A estrutura correta do payload é {"content": "mensagem opcional", "embeds": [{"title": "Meu Embed"}]}.

Passos para Corrigir o Erro 50035 Invalid Form Body do Discord

Siga estes passos em ordem. Após cada passo, teste o envio do embed novamente.

  1. Verifique a Mensagem de Erro Exata
    Observe a resposta completa do erro. A API retorna uma mensagem como “title: Must be 256 or fewer in length.” ou “footer: Must be an object.” Isso indica exatamente qual campo é inválido. Copie a mensagem de erro para referência.
  2. Valide os Limites de Caracteres dos Campos
    Conte os caracteres em cada campo de string do seu embed. Use um contador de caracteres online ou um script. Garanta:
    – Título ≤ 256 caracteres
    – Descrição ≤ 4096 caracteres
    – Cada nome de campo ≤ 256 caracteres
    – Cada valor de campo ≤ 1024 caracteres
    – Texto do rodapé ≤ 2048 caracteres
    – Nome do autor ≤ 256 caracteres
    Se algum campo exceder o limite, encurte-o.
  3. Verifique a Estrutura do Objeto Embed
    Seu embed deve ser um objeto JSON com chaves válidas. As chaves permitidas são: title, description, url, color, timestamp, footer, image, thumbnail, video, author, fields. Não inclua outras chaves. Cada sub-objeto deve ter suas propriedades obrigatórias:
    footer deve conter text (string)
    author deve conter name (string)
    fields deve ser um array de objetos, cada um com name e value (ambos strings) e opcional inline (booleano)
  4. Coloque o Embed em um Array para Webhooks
    Se você estiver usando um webhook, garanta que o embed esteja dentro de um array sob a chave embeds. Exemplo correto:
    {"content": "Olá", "embeds": [{"title": "Teste", "description": "Isso funciona"}]}
    Incorreto: {"content": "Olá", "title": "Teste"} — isso falhará com 50035.
  5. Verifique Vírgulas Extras ou JSON Inválido
    Se você estiver escrevendo o embed manualmente, garanta que o JSON seja válido. Use um validador JSON (como jsonlint.com) para detectar vírgulas extras, aspas ausentes ou vírgulas extras em arrays. Um único erro de sintaxe faz com que todo o payload seja rejeitado.
  6. Teste com um Embed Mínimo
    Crie o embed mais simples possível para isolar o problema. Envie apenas {"embeds": [{"title": "Teste"}]}. Se funcionar, adicione campos um de cada vez até o erro retornar. Isso identifica o campo problemático.

ADVERTISEMENT

Se o Discord Ainda Retornar o Erro 50035 Após a Correção Principal

Valor da Cor do Embed Inválido

O campo color deve ser um inteiro representando um valor de cor decimal. Não use strings hexadecimais como “#FF0000”. Converta hex para decimal. Para vermelho, use 16711680. Para azul, use 255. Enviar uma string ou um float causa 50035.

Formato do Timestamp Incorreto

O campo timestamp deve ser uma string ISO 8601, por exemplo “2025-01-15T14:30:00Z”. Enviar um timestamp Unix, um formato de data diferente ou uma string de data inválida dispara o erro. Use uma biblioteca de datas para gerar a string ISO correta.

Array de Embed Contém Elementos Não Objeto

O array embeds deve conter apenas objetos JSON. Se você incluir acidentalmente uma string, número ou null dentro do array, a API retorna 50035. Garanta que cada elemento no array seja um objeto embed válido.

Erros Comuns em Payloads de Embed: Válido vs Inválido

Elemento do Payload Formato Válido Formato Inválido
Comprimento do título “title”: “Meu Título Curto” (≤256 caracteres) “title”: “Um título muito longo que excede 256 caracteres…”
Objeto author “author”: {“name”: “Bot”} “author”: “Bot”
Objeto footer “footer”: {“text”: “Texto do rodapé”} “footer”: “Texto do rodapé”
Array de fields “fields”: [{“name”: “Campo1”, “value”: “Valor1”}] “fields”: [“Campo1”, “Valor1”]
Valor da cor “color”: 16711680 “color”: “#FF0000”
Webhook embed {“embeds”: [{“title”: “Teste”}]} {“title”: “Teste”}

Após corrigir seu payload de embed, o erro 50035 deve desaparecer. Sempre valide sua estrutura JSON e contagens de caracteres antes de enviar. Para bots automatizados, adicione tratamento de erros que registre a resposta completa da API para identificar qual campo falha. Se você usa uma biblioteca como discord.js, atualize para a versão mais recente, pois versões antigas podem produzir estruturas de embed inválidas.

ADVERTISEMENT