Subject: HTTP Request Node - JSON Body Expressions NOT Evaluating - Even Basic Expressions Fail

Information on my n8n setup pro

the problem/error/question:

HTTP Request node is sending literal expressions (e.g., {{ 1 + 1 }}) in the JSON body instead of evaluating them. Node references also fail. Expression evaluation IS working in Function nodes.

What is the error message (if any)?

  • “Unexpected non-whitespace character after JSON at position 6 (line 1 column 7)” (Initially, with incorrect JSON syntax attempts)
  • “JSON parameter needs to be valid JSON” (When trying JSON.stringify())
  • Otherwise, no direct error messages in n8n UI - Webhook.site confirms literal expressions are sent.

Share the output returned by the last node (HTTP Request):

Webhook.site output showing literal expression in “text” field:

{
  "text": "{{ 1 + 1 }}",
  "model_id": "eleven_monolingual_v1",
  "voice_settings": {
    "stability": 0.5,
    "similarity_boost": 0.5
  }
}

Information on my n8n setup:

  • n8n version: 1.77.3
  • Database (default: SQLite): SQLite
  • n8n EXECUTIONS_PROCESS setting (default: own, main): Default (own, main)
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
  • Operating system: Ubuntu 24.04 LTS (Digital Ocean Droplet)

Troubleshooting Steps Already Taken (Concise List):

  • Varied expression syntax (multiple types).
  • Used JSON.stringify().
  • Created a new HTTP Request node.
  • Tested “Using JSON” and “Using Fields Below” body options.
  • Restarted n8n Docker container.
  • Verified expressions work in Function nodes.
  • Tested with minimal workflow on Webhook.site.

Request for Help:

Seeking assistance to understand why HTTP Request node is not evaluating expressions in JSON body. Need help to resolve this issue so expressions are correctly evaluated and substituted in the JSON payload.

I resolved the issue when I realized that the output from the LLM out of the AI agent was including things like / / and different symbols, which was throwing it off, so it was all in the prompt, just telling it not to add any strange dramatic symbols, in it’s output and then it worked fine.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.