Hi! I’m new to n8n and hope someone in this community could assist me ![]()
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:
-
Webhook (POST): Receives the Interaction.
-
Switch Node: Checks
$json.body.type.-
If Type 1 (PING): Sends
{"type": 1}with200 OK(Content-Type: application/json). -
If Type 2 (Command): Sends
{"type": 5}and continues processing.
-
-
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
ed25519signature. I attempted to use a Code Node (using thecryptomodule) to verify thex-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.