Executions vs. Tasks: how n8n counts
n8n bills per workflow run, Zapier per action step. The difference determines which plan actually fits your automation.
You recognize stuck executions in n8n by status indicators that won't move. Here's how to set EXECUTIONS_TIMEOUT correctly and find the cause.
In n8n you see an execution that simply never finishes. The status stays stuck on "Running" or "Waiting" even though the workflow should have completed long ago. This is called a hanging or "stuck" execution, and it's more than just a cosmetic problem: by default, according to the official reference for execution variables n8n has no time limit at all, EXECUTIONS_TIMEOUT is set to -1 by default. Without your own configuration, an execution can theoretically run forever, blocking resources, worker slots, and in queue mode entire queues.
This article shows you how to recognize hanging executions, what causes typically lie behind them, and how to set a clean time limit with EXECUTIONS_TIMEOUT and EXECUTIONS_TIMEOUT_MAX that fits your instance. Status: July 2026.
A single hanging run seems harmless at first. In practice, however, just a handful of such executions is enough to noticeably slow down an entire n8n instance, especially when several workflows share the same worker pool.
For a reliable time limit, according to the configuration guide for workflow timeouts two environment variables are decisive:
Important for understanding how the timeout technically takes effect: if the workflow runs in the main process, according to the documentation a soft timeout occurs, which only takes effect after the currently active node has finished. If the execution instead runs in a separate process, for example in queue mode on a worker, n8n first also attempts a soft abort and then enforces a hard abort. What this means for you: a timeout is not an instant kill switch, but a staggered mechanism that ends running work as cleanly as possible before intervening hard.
Individual workflows can set their own, lower timeout in their workflow settings. However, this is always capped from above by EXECUTIONS_TIMEOUT_MAX, so a single workflow cannot exceed the global limit. This way you keep control over the maximum runtime without every single workflow having to be individually secured.
Beyond the pure time limit, it's worth taking a look at the retention of execution data, because an overloaded database also makes diagnosing hanging runs harder. According to the reference, n8n cleans up execution data automatically:
These safeguards are a double-edged sword: while they prevent a still-running execution from being accidentally deleted, they also mean a truly hanging execution remains permanently in the database as long as no timeout ends it in the regular way. That's exactly why the combination of a sensible EXECUTIONS_TIMEOUT and working data cleanup is important, so hanging runs don't accumulate unnoticed.
If you run n8n as a digital employee in your company, a cleanly configured timeout is part of the basic setup, just like keeping an eye on concurrency limits and data cleanup. Once you get these settings right, you usually no longer need to worry about hanging executions manually. If you need support with this, or want to make your n8n instance fundamentally more stable, NordFlux supports you with the setup and operation of n8n workflows.
"Waiting" indicates that the execution is waiting at some point in the workflow for an external event, such as a response from a Wait node or a pending webhook call. If this status persists beyond the expected runtime, it points to an event that never occurs, and the execution effectively hangs until a timeout ends it.
There is no single universally correct value; it depends on your longest regular workflows. As a starting point, it helps to measure the normal runtime of your most demanding automation and round it up generously, roughly two to three times. This leaves enough buffer for normal fluctuations while truly hanging runs are still reliably ended.
No, according to the n8n documentation, a soft abort occurs first. In the main process, n8n waits until the currently running node has finished; in separate processes, after a soft attempt, a hard abort is additionally enforced after a short wait. The transition is therefore staggered rather than abrupt.
No. EXECUTIONS_TIMEOUT_MAX defines the absolute upper limit for the entire instance. Even if a workflow has set a higher individual timeout in its own settings, this value is capped by EXECUTIONS_TIMEOUT_MAX, so that no workflow can exceed the global limit.
Not while they are active. n8n explicitly excludes executions with the status "new," "running," or "waiting" from automatic cleanup via EXECUTIONS_DATA_PRUNE. A truly hanging execution therefore remains in place until either a configured timeout ends it or you cancel it manually.
Founder of NordFlux. Spent four years automating processes at enterprise scale at Dräger, and now brings that depth to the mid-market — pragmatic and with full data sovereignty.
Certifications
n8n bills per workflow run, Zapier per action step. The difference determines which plan actually fits your automation.
The cron expression is almost always correct, the timezone is not. Three real n8n forum cases show why Schedule Triggers fire at the wrong time.
How to read the run history in Power Automate correctly and find the cause of a failed run.
EXECUTIONS_TIMEOUT and cleaned-up execution data stop a single stuck automation from slowing down your entire instance. NordFlux provides managed operation of your n8n installation, including monitoring, timeout configuration, and regular database maintenance. In an initial conversation, we look at where your workflows are currently getting stuck and why.