I am experiencing a persistent HTTP 429 (Too Many Requests) error combined with a curl_errno = 56 whenever I try to manually save a workflow. This happens consistently on a self-hosted instance. After analyzing my Nginx logs, I noticed bursts of telemetry data and external webhook hits (Facebook) that seem to be saturating the connection or triggering a rate limit, preventing the editor from saving the workflow JSON.
What is the error message (if any)?
(#2200) Callback verification failed with the following errors: curl_errno = 56; curl_error = CONNECT tunnel failed, response 429; HTTP Status Code = 429; HTTP Message = Too Many Requests
Share the output returned by the last node
The nodes execute correctly, but the UI fails to persist the changes to the database due to the 429 error during the POST request to the internal API.
Checking Google Cloud Firewall (Port 5678, 80, 443 are open).
The issue persists, suggesting a possible bottleneck in the proxy-to-container communication or a strict rate-limiting policy in the underlying infrastructure when handling large JSON payloads.
Hi @emiliano2025 Welcome!
Please consider updating your docker instance as it is currently a lot behind from the latest stable version, just update the docker image and things would work just fine:
Following your suggestion, I have successfully updated my Docker instance to the latest stable version of n8n. However, the issue remains unresolved.
Specifically:
Activation Issues: When I try to publish the workflow, I consistently get the error: ‘Callback verification failed… HTTP Status Code = 429; Too Many Requests’.
Inconsistent Behavior: To get the workflow to actually publish, I have to refresh the page and click the ‘Publish’ button multiple times. It only works after several attempts.
Missing Logs: Even when the workflow is finally ‘Active’, many WhatsApp messages from Meta still don’t reach my webhook and do not appear in the execution logs at all.
The error CONNECT tunnel failed coupled with HTTP 429 confirms your instance is still trying to use the n8n Development Tunnel instead of your own Nginx domain.
To fix this immediately,
you must remove N8N_TUNNEL_SUBDOMAIN (and --tunnel) from your configuration and ensure WEBHOOK_URL is set to your actual domain (e.g., https://n8n.your-domain.com/);
this bypasses the rate-limited tunnel and routes traffic directly through Nginx.
Furthermore, since you are using the default SQLite database on a GCP VM, the dropped WhatsApp messages are likely due to SQLite “locking” during high traffic or saves, so you should migrate to PostgreSQL to handle concurrent requests without freezing.
Some whatsapp messages not triggering the workflow.
Error when publishing the workflow that contains the whastapp trigger node. Error message:
(#2200) Callback verification failed with the following errors: curl_errno = 56; curl_error = CONNECT tunnel failed, response 429; HTTP Status Code = 429; HTTP Message = Too Many Requests
We have exactly the same issue. It’s a real nightmare. It’s kept me busy for 3 days and still no answer. I am praying someone has a solution to this:
Some whatsapp messages not triggering the workflow.
Error when publishing the workflow that contains the whastapp trigger node. Error message:
(#2200) Callback verification failed with the following errors: curl_errno = 56; curl_error = CONNECT tunnel failed, response 429; HTTP Status Code = 429; HTTP Message = Too Many Requests
I upgraded n8n to the latest stable version and migrated the database from SQLite to PostgreSQL to better handle concurrent executions and improve overall stability.
Originally, I was running n8n with the default SQLite database in Docker. Under heavier load and concurrent workflow executions, things started behaving inconsistently.
However, I’m still monitoring the WhatsApp webhook behavior to confirm whether that specific problem is fully resolved. I’d prefer to observe it under normal load for some time before drawing conclusions.
Moving from SQLite to PostgreSQL made a noticeable difference in stability, especially when handling concurrent executions and heavier workloads.
If you’re experiencing strange behavior under load, I strongly recommend migrating to PostgreSQL instead of staying on SQLite in production.
I’m reaching out because, unfortunately, the issue we previously discussed has started occurring again. Despite the initial fix, the same error message has resurfaced in my workflow.
Error: Workflow could not be published:
(#2200) Callback verification failed with the following errors: curl_errno = 56; curl_error = CONNECT tunnel failed, response 429; HTTP Status Code = 429; HTTP Message = Too Many Requests
I apologize, I hadn’t seen this previous response. I will follow your instructions/suggestions right away and will get back to you with the results as soon as I’m done.
After further investigation on my side, I want to clarify something important regarding the HTTP 429 error during workflow activation with the WhatsApp Trigger.
From the Nginx access logs, I can see Meta’s servers successfully reaching the webhook endpoint, including the hub.mode=subscribe verification request. My server consistently responds with HTTP 200.
There are no HTTP 429 responses in my Nginx access logs or error logs. The infrastructure is not rate-limiting these requests, and there are no limit_req or limit_conn directives configured in Nginx.
When activating the workflow, I sometimes see a 400 response on the first activation attempt and then a successful 200 on a subsequent attempt. This suggests the issue is intermittent.
Given that:
The webhook endpoint is publicly accessible
Meta verification requests return HTTP 200
No 429 responses are generated by my server
It appears that the 429 is not originating from my infrastructure, but likely from the outgoing request n8n makes to the Meta Graph API when attempting to register or update the webhook subscription.
If there is a way to enable more detailed logging of the Graph API response during activation, I’d be happy to provide that.