20 days ago
The workflow starts out well, all native functions such as webhooks, if/else conditions, etc. work well and can execute them.
But as soon as I add HTTP node, not only does the HTTP node break, but the entire workflow also.
It freezes and continues to doomspin (never ending "waiting for execution" error when I click on the first node in the workflow -> Listen for test event)
I tried deleting and recreating the workflow
N8N is up to date
The HTTP requests are correct as they are working fine in a separate workflow with the EXACT SAME details in the http.
no errors in the deployment logs
----------------------------------------
I filmed this 2-minute Komodo video just now explaining and showing the exact issue:
https://kommodo.ai/recordings/ICfn885RSPDkiSg8EmHA
----------------------------------------
I've readded the original http request to my workflow, but bear it in mind that no matter what HTTP node I use, or what's the configuration, it just simply freezes. Every single time. Just like I demonstrated it in the komodo video above.
{
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "8a2e1061-fc36-4e32-915c-5f4dde8265c8",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
0,
0
],
"id": "50280a02-5205-40e1-8f62-6d1a7d809701",
"name": "Webhook",
"webhookId": "8a2e1061-fc36-4e32-915c-5f4dde8265c8"
},
{
"parameters": {
"method": "POST",
"url": "https://services.leadconnectorhq.com/contacts/search",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization"
},
{
"name": "Version",
"value": "2021-07-28"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n "locationId": "8moPd8Sz8nGCjNkm60eD",\n "page": 1,\n "pageLimit": 20,\n "filters": [\n {\n "field": "phone",\n "operator": "eq",\n "value": "{{ $('Webhook').item.json.body.call.retell_llm_dynamic_variables.phone }}"\n }\n ]\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.3,
"position": [
208,
0
],
"id": "566412aa-e38e-46ef-b85a-12adff454fa1",
"name": "HTTP Request"
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"instanceId": "322db3bc9a63aa4d7ba9582e5e14445e2c49439393131156a908ed033f2d00b2"
}
}
----------------------------------------
core
n8nVersion: 1.120.4
platform: Docker (Railway?) (self-hosted)
nodeJsVersion: 22.21.0
nodeEnv: production
database: postgres
executionMode: scaling (single-main)
concurrency: -1
license: pro (production)
client
userAgent: mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/142.0.0.0 safari/537.36
isTouchDevice: true
Generated at: 2025-11-25T08:05:02.319Z}
Attachments
2 Replies
20 days ago
Hey there! We've found the following might help you get unblocked faster:
If you find the answer from one of these, please let us know by solving the thread!
19 days ago
This thread has been marked as public for community involvement, as it does not contain any sensitive or personal information. Any further activity in this thread will be visible to everyone.
Status changed to Open brody • 19 days ago
19 days ago
Hyy @jessedanku
I investigated this and reproduced the symptoms described. Short version: this is not the HTTP node itself but the UI “push” channel (WebSocket / SSE) that the editor uses to get execution updates. When that channel is broken by a proxy / wrong public URL settings, the editor waits forever and throws Cannot read properties of undefined (reading 'execute'). Below are the practical fixes I recommend (apply in order) — I’ve included exact env vars and an Nginx snippet you can copy.
Quick checklist (apply & test after each step):
Confirm a simple GET (
https://jsonplaceholder.typicode.com/todos/1) from an HTTP node — if it still freezes, proceed.Ensure your reverse proxy supports WebSocket upgrades.
Configure n8n public URLs and proxy hops.
Optionally force SSE if WebSockets are blocked.
Enable runners so executions run outside the UI process.
If still failing, try a different n8n minor version (backup first).
1) Fix proxy (Nginx example)
If you use Nginx (or similar), make sure you forward Upgrade headers for websockets:
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
If you’re on Railway / other managed proxies, ensure the platform doesn’t strip Upgrade/Connection headers.
2) Set n8n public URLs and proxy hops
Set these environment variables (replace <your-domain>):
N8N_EDITOR_BASE_URL=https://<your-domain>
WEBHOOK_URL=https://<your-domain>
N8N_HOST=<your-domain>
N8N_PROTOCOL=https
N8N_PROXY_HOPS=1
PORT=5678 # do NOT force 443 for N8N_PORT, leave default
These ensure the editor/backend compute the correct origin so the push channel can be established.
3) Force SSE if WebSockets are not allowed
If your hosting/proxy environment blocks WebSockets, force Server-Sent Events:
N8N_PUSH_BACKEND=sse
# or explicitly set `N8N_PUSH_BACKEND=websocket` to prefer websocket
Redeploy after changing this.
4) Enable background runners (recommended)
Offload execution from the main process (prevents UI process from blocking):
N8N_RUNNERS_ENABLED=true
Redeploy / restart the containers after setting.
5) Additional steps & Troubleshooting
Check browser console for failed WS/SSE connection attempts (look for 101/upgrade failures or CORS/origin errors).
Check n8n backend logs for errors about push connection / SSE / websocket.
If the problem only occurs with HTTP node in this instance, try the same workflow on a fresh n8n instance (or different minor version) to rule out a version-specific bug. Always export workflows/credentials first.
Summary :
This freeze is almost always a broken push channel (WS/SSE) caused by proxy/origin misconfiguration — fix the proxy headers and public URLs (or force SSE), enable runners, and the HTTP node problem should disappear.
If you want, I can:
provide a tailored Nginx/Traefik config for your exact Railway/docker setup, or
test specific env values/steps you’ve tried and tell you exactly what to change next.
I Hope this solution fixes the issue for you :))