Debug Webhook Failures: Why Discord Says 'Invalid Form Body' and Zapier Returns 400
Debug Webhook Failures: Why Discord Says “Invalid Form Body” and Zapier Returns 400
Webhook testing becomes a nightmare when platforms return cryptic error messages that tell you nothing about what went wrong. You’ve crafted what looks like a perfect payload, hit send, and get back “Invalid Form Body” from Discord or a generic HTTP 400 from Zapier. What failed? Which field? How do you fix it?
Here’s how to decode the most common webhook errors and fix them fast.
Discord’s “Invalid Form Body” Error (Code 50035)
Discord’s error message is intentionally vague for security reasons, but here are the most common causes:
Empty Embed Field Names
{
"embeds": [{
"fields": [
{
"name": "", // This will fail
"value": "Some value"
}
]
}]
}
Fix: Ensure all field names have content. Even a single space works: "name": " "
Integer vs String Confusion
{
"embeds": [{
"color": "#FF5733" // Wrong: hex string
}]
}
Fix: Discord expects decimal integers: "color": 16734003
Character Limit Violations
Discord limits:
- Total embed characters: 6,000
- Title: 256 characters
- Description: 4,096 characters
- Field names: 256 characters
- Field values: 1,024 characters
Zapier’s Silent 400 Errors
Zapier often returns generic HTTP 400 without details. Common causes:
Missing Content-Type Header
Zapier webhooks require: Content-Type: application/json
Malformed JSON Structure
{
"name": "John",
"email": "john@example.com" // Missing comma if more fields follow
"phone": "555-1234"
}
Unexpected Field Types
If your Zap expects a number but receives a string, it will fail silently.
n8n Webhook Debugging
n8n provides better error messages, but watch for:
URL Mismatch Issues
- Test URL:
https://your-instance.app.n8n.cloud/webhook-test/your-path - Production URL:
https://your-instance.app.n8n.cloud/webhook/your-path
Using the wrong URL type is the #1 cause of “webhook not found” errors.
Authentication Problems
n8n webhooks with authentication enabled require exact header matching.
Make.com (Integromat) Webhook Errors
Scenario Not Active
Make only listens for webhooks when the scenario is active. “Waiting for data…” means:
- The scenario isn’t running, or
- The webhook URL is incorrect
Data Structure Mismatch
Make expects specific field structures based on your first webhook. Changing payload structure later can break existing scenarios.
Universal Debugging Strategy
- Start Simple: Send minimal valid JSON first
- Add Fields Incrementally: Build complexity piece by piece
- Check Examples: Use platform documentation examples as templates
- Validate JSON: Use a JSON validator before sending
- Check Headers: Ensure correct Content-Type and authentication
Using Hookshot for Better Debugging
Hookshot provides platform-specific validation that catches these errors before you send:
- Discord embed validation: Checks character limits and field requirements
- Zapier payload validation: Ensures proper JSON structure and types
- n8n URL validation: Confirms test vs production URL usage
- Make scenario checks: Verifies scenario is active and listening
Instead of playing guessing games with cryptic error messages, Hookshot shows you exactly what’s wrong before you waste time debugging failed webhook calls.
Stop fighting with platform-specific webhook quirks. Get clear error messages and working payloads from the start.
Try Hookshot for free
Test and debug webhooks directly from your browser. No signup required.