[v2.0.3](Self-Hosted) n8n Production URL Verification Failing in Discord Bot/Application

Hi! I’m new to n8n and hope someone in this community could assist me :blush:

The Problem: When I attempt to save the production URL in the Discord Developer Portal after publishing a workflow, I get:

Validation errors:
interactions_endpoint_url: The specified interactions endpoint url could not be verified.

My Setup:

  1. Webhook (POST): Receives the Interaction.

  2. Switch Node: Checks $json.body.type.

    • If Type 1 (PING): Sends {"type": 1} with 200 OK (Content-Type: application/json).

    • If Type 2 (Command): Sends {"type": 5}and continues processing.

  3. Testing: The flow succeeds in execution (I can see the Type 1 path execute correctly), but Discord still rejects the URL.

Here’s a snippet of the code without what follows:

Constraints & Troubleshooting So Far:

  • No Community Nodes: I cannot use the “Discord Trigger” node because I am unable to adjust n8n API scopes on my free license. I also do not want to expose my n8n API to a non-commercial/standard node from Discord. I must use the generic Webhook node.

  • Manual Verification: I know I need to verify the ed25519 signature. I attempted to use a Code Node (using the crypto module) to verify the x-signature-timestamp + raw body against my Public Key. But this doesn’t seem to work.

  • The Issue: It seems n8n v2.0.3 parses the JSON body before I can access the raw binary buffer, causing the signature check to fail mathematically because the payload is altered (whitespace/formatting).

Note, this was working before publishing and using the webhook-test URL. Has anyone successfully configured a manual Discord Interaction verification on v2.0.3 without using the Discord Trigger node? How can I get the truly raw, unparsed body from the Webhook node so the crypto verification passes? Or am I over/under engineering this?

Please let me know if I can provide any further information.

same problem