How to Resolve Discord Error 50035 Invalid Form Body on Embed Send
🔍 WiseChecker

How to Resolve Discord Error 50035 Invalid Form Body on Embed Send

When you send an embed to a Discord channel using a bot or a webhook, you may see the error 50035 Invalid Form Body. This error means the embed data you provided does not match what Discord expects. The problem is almost always caused by a field that is too long, missing a required property, or using an incorrect data type. This article explains the exact causes of the 50035 error and gives you step-by-step fixes to correct your embed payload.

Key Takeaways: Fixing Discord Error 50035 on Embed Send

  • Embed field character limits: Title max 256 characters, description max 4096 characters, each field name max 256 characters, each field value max 1024 characters.
  • Embed object structure: The embed object must be a JSON object with valid keys like title, description, fields, color — no extra or misspelled keys.
  • Webhook execute endpoint: When using a webhook, the embed must be wrapped in an array under the embeds key, not sent as a top-level object.

ADVERTISEMENT

Why Discord Returns Error 50035 for Embed Sends

Discord’s API validates every embed payload against strict rules. The 50035 error is a validation failure. The API returns this error when at least one of the following conditions is true:

Field Length Limits Exceeded

Each embed field has a maximum character count. If you send a title longer than 256 characters, a description longer than 4096 characters, a field name longer than 256 characters, or a field value longer than 1024 characters, the API rejects the embed. The error message usually specifies which field is too long, for example “title: Must be 256 or fewer in length.”

Missing Required Fields or Incorrect Data Types

The embed object requires a valid structure. You cannot send a string where an object is expected. For example, the author field must be an object with a name property, not a plain string. Similarly, the footer field must be an object with a text property. If you omit the name property from the author object, the API returns 50035.

Incorrect Embed Wrapping for Webhooks

When sending an embed via a webhook, the embed must be placed inside an array under the embeds key. Sending the embed directly as the top-level JSON object causes a 50035 error. The correct payload structure is {"content": "optional message", "embeds": [{"title": "My Embed"}]}.

Steps to Fix Discord Error 50035 Invalid Form Body

Follow these steps in order. After each step, test your embed send again.

  1. Check the Exact Error Message
    Look at the full error response. The API returns a message like “title: Must be 256 or fewer in length.” or “footer: Must be an object.” This tells you exactly which field is invalid. Copy the error message for reference.
  2. Validate Field Character Limits
    Count characters in every string field of your embed. Use an online character counter or a script. Ensure:
    – Title ≤ 256 characters
    – Description ≤ 4096 characters
    – Each field name ≤ 256 characters
    – Each field value ≤ 1024 characters
    – Footer text ≤ 2048 characters
    – Author name ≤ 256 characters
    If any field exceeds its limit, shorten it.
  3. Verify Embed Object Structure
    Your embed must be a JSON object with valid keys. Allowed keys are: title, description, url, color, timestamp, footer, image, thumbnail, video, author, fields. Do not include any other keys. Each sub-object must have its required properties:
    footer must contain text (string)
    author must contain name (string)
    fields must be an array of objects, each with name and value (both strings) and optional inline (boolean)
  4. Wrap Embed in an Array for Webhooks
    If you are using a webhook, ensure the embed is inside an array under the embeds key. Correct example:
    {"content": "Hello", "embeds": [{"title": "Test", "description": "This works"}]}
    Incorrect: {"content": "Hello", "title": "Test"} — this will fail with 50035.
  5. Check for Trailing Commas or Invalid JSON
    If you are writing the embed manually, ensure the JSON is valid. Use a JSON validator (like jsonlint.com) to catch trailing commas, missing quotes, or extra commas in arrays. A single syntax error causes the entire payload to be rejected.
  6. Test with a Minimal Embed
    Create the simplest possible embed to isolate the issue. Send only {"embeds": [{"title": "Test"}]}. If that works, add fields one at a time until the error returns. This pinpoints the problematic field.

ADVERTISEMENT

If Discord Still Returns Error 50035 After the Main Fix

Embed Color Value Is Invalid

The color field must be an integer representing a decimal color value. Do not use hex strings like “#FF0000”. Convert hex to decimal. For red, use 16711680. For blue, use 255. Sending a string or a float causes 50035.

Timestamp Format Is Wrong

The timestamp field must be an ISO 8601 string, for example “2025-01-15T14:30:00Z”. Sending a Unix timestamp, a different date format, or an invalid date string triggers the error. Use a date library to generate the correct ISO string.

Embed Array Contains Non-Object Elements

The embeds array must contain only JSON objects. If you accidentally include a string, number, or null inside the array, the API returns 50035. Ensure every element in the array is a valid embed object.

Common Embed Payload Mistakes: Valid vs Invalid

Payload Element Valid Format Invalid Format
Title length “title”: “My Short Title” (≤256 chars) “title”: “A very long title that exceeds 256 characters…”
Author object “author”: {“name”: “Bot”} “author”: “Bot”
Footer object “footer”: {“text”: “Footer text”} “footer”: “Footer text”
Fields array “fields”: [{“name”: “Field1”, “value”: “Value1”}] “fields”: [“Field1”, “Value1”]
Color value “color”: 16711680 “color”: “#FF0000”
Webhook embed {“embeds”: [{“title”: “Test”}]} {“title”: “Test”}

After correcting your embed payload, the 50035 error should disappear. Always validate your JSON structure and character counts before sending. For automated bots, add error handling that logs the full API response to identify which field fails. If you use a library like discord.js, update it to the latest version because older versions may produce invalid embed structures.

ADVERTISEMENT