Hey everyone im asking this question because ive been working on this for an embarrasingly long time, asking questions and still havent been able to make it work so im hoping that including part of the workflow will allow better clarification
Hey there!
I have a few suggestions for you. Could you first try this:
Reduce concurrency
In the HTTP Request node, under Options → Batching, try lowering the batch even further.
“batchSize”: 1,
“batchInterval”: 1000
That will run 1 request per second, which most servers tolerate.
If this doesn’t work, we will have to consider these changes as well:
Don’t run everything in the Editor
The WebSocket error only affects the UI. Even if the UI disconnects, the workflow may still run headless. Trigger the workflow outside the Editor (e.g. via Execute Workflow Trigger, Webhook, or Cron). Then monitor via Executions list instead of relying on the live connection.
Paginate with SplitInBatches node (different from “Split Out”)
- Insert SplitInBatches after your dataset.
- Configure batchSize: 50 (or less).
- Connect the output into your HTTP Request.
- Add a loop back into the SplitInBatches node until all batches are processed.
- This ensures memory usage doesn’t blow up because n8n only holds one batch at a time.
Example loop:
Get dataset -> SplitInBatches (50) -> HTTP Request -> (back to SplitInBatches “Next batch”)
Also avoid “pinning” large data. If you pin the dataset output with thousands of items, the Editor UI will crash. Always unpin before running big datasets.
If you still hit a 403, that’s not n8n, it’s the target endpoint rate-limiting you. You’ll need to add bigger delays (batchInterval in seconds, not ms.
Let me know if this helps.
Normally, the mail service won’t allow you to send 1k of emails in a short period of time. Use email marketing campaign services for that (like SendGrid or Mailchimp)
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.