A Green n8n Status Proves Nothing

Why a successful n8n run proves no result: a look at stalled BullMQ jobs and silent successes without provider confirmation.

  • Two incidents, one diagnosis
  • A green status is not proof
  • How runs get lost in the queue
  • Why a duplicate is more dangerous than a failure

Two incidents, one diagnosis

  1. Over the course of one week, the n8n forum surfaced two analyses of the same phenomenon from different perspectives.

  2. One engineer described runs that hang in the queue while the worker sits idle.

  3. Another engineer collected cases where n8n marks a run as successful even though the provider on the other end never confirmed the result.

  4. The triggers differ, but the cause is the same: the platform records that the code ran, not that anything changed in the real world.

  5. For a company that relies on automation for its CRM, mailings, and payments, the difference between these two facts costs money.

A green status is not proof

The author of the “silent success” thread put the problem precisely: the run is green, but the event never happened.

The dashboard catches exceptions, not discrepancies between the reported and actual result. He identified three recurring scenarios. The first is “sent ≠ accepted.”

: the workflow sends 40 mailing addresses to the API, receives a 200 response and a job ID, but only 38 are actually accepted. There is not a single red line in the execution log, and the two people who never received the email are discovered only after a complaint weeks later. The second and third scenarios are variations on the same theme: a 200 code despite no effect on the provider’s side, and confirmation that the workflow gives itself without checking with the external system.

The common invariant is this: the workflow asserts an outcome, but no one reconciles it with the state seen by the provider.

How runs get lost in the queue

Meanwhile, another engineer was investigating runs that, in queue mode with Redis, die exactly at the 600-second mark, while some jobs return to the queue even though the worker is still alive.

His hypothesis identifies the cause: recovery of stalled jobs in BullMQ.

The event loop and a shortage of runners have nothing to do with it. In queue mode, the worker holds a Redis lock for each task and renews it on a timer—the `QUEUE_WORKER_LOCK_DURATION` and `QUEUE_WORKER_LOCK_RENEW_TIME` parameters.

If renewal is late, BullMQ does not consider the task failed—it considers it stalled, returns it to the `wait` queue, and a worker picks it up again.

For a long task that barely fits within the standard lock duration, this means the same logical action is performed twice.

Map out your integration landscape

Why a duplicate is more dangerous than a failure

  1. A red run triggers an alert and a person to investigate.

  2. Rerunning a non-idempotent POST—such as writing to a CRM or charging a payment—does not trigger anything.

  3. It simply duplicates data, and this is discovered not by monitoring but by accounting or an unhappy customer.

  4. This is exactly the problem faced by a team that described its case with self-hosted n8n, a Redis queue, and an MCP Server Trigger calling an external HTTP tool: duplicate CRM records from a single form forced them to build a temporary idempotency guard on top of the standard queue.

  5. An important detail of their solution is that they deliberately rejected broad response caching because the cache also hides a legitimate repeat call with the same arguments.

  6. Idempotency here is a separate logic layer designed for a specific business process.

  7. A checkbox in the queue settings does not provide it.

What automation needs behind it to be trusted with money

  1. A workflow with a couple of nodes and arrows looks simple.

  2. A reliable workflow that can be trusted with a payment or customer mailing is never simple—it requires an idempotency key for every unsafe operation, a reconciler that asks the provider whether the reported action actually occurred, and lock timeouts calculated for the task’s real duration rather than taken as defaults.

  3. That is what distinguishes an automation pipeline capable of handling the company’s workload and money from a macro that will one day fail silently.

  4. When KT.Team puts n8n or MCP integrations on top of queues such as Kafka, this layer—reconciling the outcome with the provider and ensuring idempotency at the business-key level rather than the request level—is built into the project from the start, not added after the first duplicate-charge incident.

Conclusion

A green status in an automation orchestrator answers the question, “Did the code run without an exception?” The business needs an answer to a different question: did what was supposed to change change exactly once? Before trusting automation with money or customer data, ask what happens when the same task runs again and who reconciles the reported success with confirmation from the provider. If the answer is “no one,” this is not automation but an unaccounted-for risk with a green checkmark.

Discuss the article: Why a Green n8n Status Proves Nothing

Enter your email or phone number so we can get back to you.

Send via: