Skip to content

2.27.0 regression: waiting webhook resume returns 404 in queue mode when parent has saveDataSuccessExecution: none #32509

Description

@zlebandit

Bug Description

After upgrading from n8n 2.25.7 to 2.27.0, a production workflow using a Wait node in webhook resume mode started failing again with the same observable behavior as #29924.

The child workflow calls the parent resume URL:

/webhook-waiting/<parentExecutionId>

and receives:

404 - {"code":404,"message":"The execution \"<parentExecutionId>\" does not exist."}

This only happens when the parent workflow has:

"saveDataSuccessExecution": "none"

Changing the parent workflow to:

"saveDataSuccessExecution": "all"

stops the failure.

This looks related to #29924 / #30099, but the #30099 code appears to be present in 2.27.0. So this may be the same class of bug happening through another execution persistence path.

The production impact is significant: the affected workflow runs frequently and intentionally avoids storing successful executions, but the parent execution must still remain available while parked at a Wait node.

To Reproduce

Production pattern:

  1. Run n8n 2.27.0 in queue mode with PostgreSQL.
  2. Use a parent workflow with saveDataSuccessExecution: "none".
  3. In the parent workflow, fan out to child workflows.
  4. Park the parent workflow at a Wait node in webhook resume mode.
  5. Let child workflows call the parent resume URL /webhook-waiting/<parentExecutionId>.
  6. Some child executions fail with 404 because the parent execution no longer exists.

Concrete production failures observed on 2.27.0:

Child execution: 1752482
Child workflow: -> Calendrier vers Notion
Failed node: Call webhook
Parent execution id referenced by child: 1752478
Failure time: 2026-06-16 18:56:09 UTC
Child execution: 1752566
Child workflow: -> Calendrier vers Notion
Failed node: Call webhook
Parent execution id referenced by child: 1752561
Failure time: 2026-06-16 19:00:17 UTC

Database check after the failure:

SELECT id, status, finished, "workflowId", "startedAt", "stoppedAt", "waitTill", "deletedAt"
FROM execution_entity
WHERE id IN (1752478, 1752561);

returned no rows for the parent execution ids.

The failed child executions were still present and stored the 404 error.

Expected behavior

A parent execution parked at a Wait node in webhook resume mode should remain findable through:

/webhook-waiting/<executionId>

until it is resumed, even when the parent workflow has:

"saveDataSuccessExecution": "none"

The execution should not be deleted, soft-deleted, pruned, or otherwise made unavailable while it is still waiting for a resume webhook.

Debug Info

n8n version: 2.27.0
Node.js version: 24.16.0
Database: PostgreSQL 15
Execution mode: queue
Hosting: Docker self-hosted
OS: Ubuntu 24.04.4 LTS
Architecture: x86_64

Deployment topology:

  • 1 main n8n container
  • 5 n8n worker containers
  • PostgreSQL 15
  • Redis/Valkey queue backend
  • Docker Compose

Related issues / PRs:

Additional notes:

  • The instance was downgraded back to 2.25.7 after this regression.
  • After downgrading to 2.25.7, the same production workflow stopped producing The execution "<id>" does not exist errors.
  • Workaround on 2.27.0 was to change the parent workflow from saveDataSuccessExecution: "none" to saveDataSuccessExecution: "all".

Operating System

Ubuntu 24.04.4 LTS, Docker self-hosted

n8n Version

2.27.0

Node.js Version

24.16.0

Database

PostgreSQL

Execution mode

queue

Hosting

self hosted

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:in-linearIssue or PR is now in Linearstatus:team-assignedA team has been assigned the issue or PRteam:catsIssue is with the Cats team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions