Bug Description
The HTTP Request node in n8n version 2.38.5 exhibits unexpected behavior when receiving a JSON response from another n8n workflow’s webhook. Instead of parsing the literal JSON values returned by the webhook, the HTTP Request node re-templates these values back into expression strings (e.g., {{ $json.property }}). This prevents subsequent nodes from accessing the actual data values, as they receive the literal expression strings instead of the resolved data.
Environment Details: n8n is installed locally on my machine and started via the n8n start command in the command prompt (CMD).
To Reproduce
1. Workflow 2 (Webhook Listener):
Create a simple n8n workflow (let’s call it “Workflow 2”).
Start with a Webhook node (HTTP Method: POST, Authentication: None).
Add a Set node to define some data, for example: json
{
“filialAtual”: 300,
“periodo_id”: 1,
“temMais”: true,
“totalAcumulado”: 100
}
Connect the Set node to a Respond to Webhook node.
In the Respond to Webhook node, configure it to return the data from the Set node. For example, using the following JSON structure (which was previously adjusted to avoid syntax errors with null and booleans): json
{
“filialAtual”: “{{ $json.filialAtual }}”,
“periodo_id”: “{{ $json.periodo_id }}”,
“limiteRegistros”: “{{ $json.limiteRegistros }}”,
“lastDtEmissao”: “{{ $json.lastDtEmissao === null ? ‘null’ : $json.lastDtEmissao }}”,
“lastChaveAcesso”: “{{ $json.lastChaveAcesso === null ? ‘null’ : $json.lastChaveAcesso }}”,
“totalAcumulado”: “{{ $json.totalAcumulado }}”,
“temMais”: “{{ $json.temMais === true ? ‘true’ : ‘false’ }}”
}
Publish Workflow 2. Note its production webhook URL (e.g., http://localhost:5678/webhook/your-workflow-2-id).
2.Workflow 1 (HTTP Request Caller):
Create another n8n workflow (let’s call it “Workflow 1”).
Start with a Start node or Manual Trigger.
Add a Set node to define initial data that will be sent to Workflow 2 (e.g., filialAtual: 300, periodo_id: 1, limiteRegistros: 500, etc.).
Add an HTTP Request node (let’s call it “Call Workflow 2”).
Configure the HTTP Request node:
Method: POST
URL: The production webhook URL of Workflow 2.
Authentication: None
Send Body: true
Body Content Type: JSON
Specify Body: Using JSON
JSON Body: Pass the data from the previous Set node using expressions: json
{
“filialAtual”: “{{ $json.filialAtual }}”,
“periodo_id”: “{{ $json.periodo_id }}”,
“limiteRegistros”: “{{ $json.limiteRegistros }}”,
“lastDtEmissao”: “{{ $json.lastDtEmissao }}”,
“lastChaveAcesso”: “{{ $json.lastChaveAcesso }}”,
“totalAcumulado”: “{{ $json.totalAcumulado }}”,
“temMais”: “{{ $json.temMais }}”
}
Execute Workflow 1.
Expected behavior
The HTTP Request node should parse the JSON response from Workflow 2 and present the literal values in its OUTPUT. For example, if Workflow 2 returned {“filialAtual”: 300, “temMais”: true}, the HTTP Request node’s OUTPUT should reflect these literal values:
json
Copiar
[
{
“filialAtual”: 300,
“periodo_id”: 1,
“limiteRegistros”: 500,
“lastDtEmissao”: null,
“lastChaveAcesso”: null,
“totalAcumulado”: 100,
“temMais”: true
}
]
Debug Info
Debug info
core
- n8nVersion: 2.38.5
- platform: npm
- nodeJsVersion: 24.19.0
- nodeEnv: undefined
- database: sqlite
- executionMode: regular
- concurrency: -1
- license: community
- consumerId: unknown
storage
- success: all
- error: all
- progress: false
- manual: true
- binaryMode: filesystem
pruning
- enabled: true
- maxAge: 336 hours
- maxCount: 10000 executions
client
- userAgent: mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/152.0.0.0 safari/537.36
- isTouchDevice: false
cluster
- instanceCount: 1
- versions: 2.38.5
- instances:
- instanceKey: 4fcbd15f-f437-4e49-8624-bdfcb3ff03c6, hostId: main-cdKCNrkWxZd1KQ30, instanceType: main, instanceRole: leader, version: 2.38.5
- checks:
- check: hostid-clash, status: succeeded, warnings: -
- check: lifecycle, status: succeeded, warnings: -
- check: split-brain, status: succeeded, warnings: -
- check: version-mismatch, status: succeeded, warnings: -
Generated at: 2026-09-11T16:57:34.026Z
Operating System
Windows 11 Pro
n8n Version
2.38.5
Node.js Version
24.19.0
Database
SQLite (default)
Execution mode
main (default)
Hosting
self hosted