# Duplicate items generated by Wait after Execute sub workflow

**URL:** <https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829>\
**Category:** Help me Build my Workflow\
**Tags:** webhook, execute-workflow\
**Created:** [September 10, 2025, 3:27pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829 "2025-09-10T15:27:06Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Marc\_Skipp](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/marc_skipp/32/59006_2.png) [@Marc\_Skipp](https://community.n8n.io/u/Marc_Skipp)\
**Post date:** [September 10, 2025, 3:27pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/1 "2025-09-10T15:27:06Z")

</div>

After executing a Subworkflow, and the child workflow calls a webhook to resume the parent, the parent flow duplicates the incoming items, causing the rest of the flow to be executed twice.

NOTE: I’m using a pattern described elsewhere in these forums to Execute a Sub Workflow, and then have the sub workflow call a webhook URL to resume the parent. This is a workaround for the quirky behavior of the Execute Workflow node, where it doesn’t always wait, or doesn’t return the output from the final node. “Wait for Sub-Workflow Completion” is set to False.

I’ve simplified the two workflows as much as possible, so it’s now very small. I have a ParentWorkflow and a ChildWorkflow, specified below.

N.B. (THIS SEEMS TO BE IMPORTANT): The problem only occurs when the child has a “Wait on Webhook Call” node. If I swap this for a “Wait on time interval”, then everything works as expected. I can use the curl below to resume the webhook of the child. Note the `EID` variable is the execution ID of the Child, not the parent.

`EID=388 && curl --data '{"foo": 1}' "https://skippai.app.n8n.cloud/webhook-waiting/$EID/subworkflow"`  
=\> {“message”: “Workflow was started”}

PARENT

CHILD

---

<div class="post-metadata">

**Author:** ![Marc\_Skipp](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/marc_skipp/32/59006_2.png) [@Marc\_Skipp](https://community.n8n.io/u/Marc_Skipp)\
**Post date:** [September 10, 2025, 3:29pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/2 "2025-09-10T15:29:19Z")

</div>

I should add that I’m using the Free trial on the cloud.

Running version n8n@1.108.2

---

<div class="post-metadata">

**Author:** ![carsten](https://avatars.discourse-cdn.com/v4/letter/c/f14d63/32.png) [@carsten](https://community.n8n.io/u/carsten)\
**Post date:** [September 17, 2025, 5:34pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/3 "2025-09-17T17:34:51Z")

</div>

I am getting double executions all the time and you will find old/ancient posts here begging for a better cronjob.

> [@Scheduled Workflows executed twice](http://community.n8n.io/t/scheduled-workflows-executed-twice/50142):
>
> Hello, I have a few workflows that are triggered by a schedule trigger once a day at a certain time. When I check the “executions” tab, I see, that some workflows are triggered twice at the same time. I would like to prevent this, because it slows down the performance and sometimes causes problems in the workflows. Does anyone know why this is happening and how I could fix this? I already tried deleting the schedule trigger node and creating a new one. Information on your n8n setup n8n ve…

> <https://github.com/n8n-io/n8n/pull/10033>
>
> \## Summary
> Letting individual nodes manage CronJob 
> 1. creates a lot of duplic…ate code
> 2. adds the responsibility of cleaning up on the nodes
> 3. doesn't give us a centralized overview of all active CronJobs in the process
> 
> This PR aims to centralize how we register cronJobs, to have a better control over their lifecycle. 
> 
> \## Review / Merge checklist
> 
> \- \[x\] PR title and summary are descriptive
> \- \[x\] Tests included

> [@Prevent double execution](http://community.n8n.io/t/prevent-double-execution/30569):
>
> Describe the problem/error/question Is there a possibility that n8n detects already executed items and just skip them? Let me give you more details: I am the developer of the “SeaTable” node. SeaTable is comparable to Airtable, so it is a no code database where you can define your database structure in a browser and store all kind of data in it. Currently I am improving the node and I want to add a new trigger like “New file / image”. This trigger should watch file/image columns and if there …

and so on…..

using n8n to schedule and trigger subworkflows to me only works when workers are disabled and n8n is in regular and not in [queue mode](https://docs.n8n.io/hosting/scaling/queue-mode/). but i think this would no longer allow subworkflows at all.

---

<div class="post-metadata">

**Author:** ![ihortom](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/ihortom/32/11473_2.png) [@ihortom](https://community.n8n.io/u/ihortom)\
**Post date:** [September 21, 2025, 12:25am UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/4 "2025-09-21T00:25:15Z")

</div>

Hey @carsten , duplicated cron executions have been addressed in [1.107.0](https://github.com/n8n-io/n8n/pull/18208). Beisdes that there could be duplicated executiones caused by misconfiguration of n8n in multi-main mode.

- `1.107.0`:
  - cron: [fix(core): Protect against duplicate cron registration by ivov · Pull Request #18005 · n8n-io/n8n · GitHub](https://github.com/n8n-io/n8n/pull/18005)
  - queue mode: [fix(core): Prevent re-entry during workflow activation by ivov · Pull Request #17965 · n8n-io/n8n · GitHub](https://github.com/n8n-io/n8n/pull/17965)

- _Multi-main setup misconfiguration_: not using `N8N_MULTI_MAIN_SETUP_ENABLED=true`will result in each main instance scheduling the same job.

---

<div class="post-metadata">

**Author:** ![ihortom](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/ihortom/32/11473_2.png) [@ihortom](https://community.n8n.io/u/ihortom)\
**Post date:** [September 21, 2025, 1:31am UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/5 "2025-09-21T01:31:04Z")

</div>

Hey @Marc_Skipp , that seems to be a visualization problem. When I test your scenario, indeed the canvas of the currently completed execution shows the Wait node has 2 outputs. However, when switching to History tab it shows only one (as expected).

_Real time monitoring_

 ![image](https://europe1.discourse-cdn.com/n8n/original/3X/f/c/fc206d775d04b6b49e14269c6d5f30de0acd7abe.png)

_History tab execution (of the same execution)_

 ![image](https://europe1.discourse-cdn.com/n8n/original/3X/a/b/abcdbe6e01728deda3684e48c0b27ed3ffab033d.png)

As a workaround you can add **Remove Duplicates** node after Wait node in parent workflow.

---

<div class="post-metadata">

**Author:** ![Marc\_Skipp](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/marc_skipp/32/59006_2.png) [@Marc\_Skipp](https://community.n8n.io/u/Marc_Skipp)\
**Post date:** [September 21, 2025, 2:00am UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/6 "2025-09-21T02:00:41Z")

</div>

Hey **[ihortom](http://community.n8n.io/u/ihortom)** [n8n Team](http://community.n8n.io/g/n8n_Team),

Thanks for the tip. But, I don’t think that is correct. Subsequent nodes are executed multiple times. For example, if I add a Slack node, after the Parent’s wait, I get two messages in Slack (as shown in attached screenshot).

Not showing the multiple items in history / executions tab appears to be another bug.

 ![Screenshot 2025-09-19 at 6.35.52 PM](https://europe1.discourse-cdn.com/n8n/original/3X/0/e/0eaba46c6e0c804d90e3ceb02a937b3da07a1722.png)

---

<div class="post-metadata">

**Author:** ![ihortom](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/ihortom/32/11473_2.png) [@ihortom](https://community.n8n.io/u/ihortom)\
**Post date:** [September 21, 2025, 2:02am UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/7 "2025-09-21T02:02:30Z")

</div>

Yes, I agree. I updated the comment recommending to add deduplication node after Wait as a workaround.

---

<div class="post-metadata">

**Author:** ![Marc\_Skipp](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/marc_skipp/32/59006_2.png) [@Marc\_Skipp](https://community.n8n.io/u/Marc_Skipp)\
**Post date:** [September 22, 2025, 1:50pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/8 "2025-09-22T13:50:03Z")

</div>

Thanks for this idea with the **Remove Duplicates**. Unfortunately, no luck with that, either.

This screenshot below shows the result, 2 items coming out of **Wait** , and still 2 items out of **Remove Duplicates**. And, indeed, I get two messages in Slack showing the same value of `body.foo`.

This screenshot after that shows my **Remove Duplicates** config from the recent execution, with input/output. I’m comparing 1 field, `body.foo`. Interestingly, from this view, the UI shows only 1 input item and 2 output items as if this were the node that created the duplication. I know from testing, though, that the duplication comes from the Wait, but it seems to me like the Remove Duplicate node is not seeing all the data at once.

The new Parent flow is at the end.

I’m going to playing around with an “Aggregation” node. I’ve never tried that node before, but seems to me there might be a workaround, there. OTOH, I _suspect_, I will see the same behavior as Remove Duplicates.

 ![Screenshot 2025-09-22 at 8.38.43 AM](https://europe1.discourse-cdn.com/n8n/original/3X/6/f/6f6b39e70a7b8d1f78299239f41d8a1b714fdff4.png)

 ![Screenshot 2025-09-22 at 8.39.51 AM](https://europe1.discourse-cdn.com/n8n/original/3X/9/e/9e3de6950012b4d5d7d73c57b8954b7afb342ed3.png)

NEW PARENT WORKFLOW

---

<div class="post-metadata">

**Author:** ![Marc\_Skipp](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/marc_skipp/32/59006_2.png) [@Marc\_Skipp](https://community.n8n.io/u/Marc_Skipp)\
**Post date:** [September 22, 2025, 1:59pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/9 "2025-09-22T13:59:17Z")

</div>

AFAICT, the **Aggregation** node had the same behavior as **Remove Duplicates**.

1. The test workflow view shows 2 items out of **Wait** , and 2 items out of **Aggregate** continuing to the Slack node.
2. Expanding the **Aggregate** node (like Remove Dupes) inaccurately shows only 1 input item, and then 2 output items.
3. Using the “Run” toggle in the upper right, I can see that the data in both outputs is identical (just like Remove Dupes).

 ![Screenshot 2025-09-22 at 8.55.08 AM](https://europe1.discourse-cdn.com/n8n/original/3X/e/6/e6bb48c63496cc32f9c9b3022c49e2fc06397889.png)

---

<div class="post-metadata">

**Author:** ![ihortom](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/ihortom/32/11473_2.png) [@ihortom](https://community.n8n.io/u/ihortom)\
**Post date:** [September 23, 2025, 4:29am UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/10 "2025-09-23T04:29:07Z")

</div>

@Marc_Skipp , you haven’t configured dedupe node correctly. You need to pick the “previous execution“ option as those output items are run is separate executions, they are not part of the same item.

 ![image](https://europe1.discourse-cdn.com/n8n/original/3X/4/4/441de7ebcb0e68734c496694e690f52ad6f612c0.png)

 ![image](https://europe1.discourse-cdn.com/n8n/original/3X/c/f/cfeed6e242660f39420f8cf065ca62be109497ab.png)

---

<div class="post-metadata">

**Author:** ![Marc\_Skipp](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/marc_skipp/32/59006_2.png) [@Marc\_Skipp](https://community.n8n.io/u/Marc_Skipp)\
**Post date:** [September 23, 2025, 5:50pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/11 "2025-09-23T17:50:18Z")

</div>

@ihortom Confirmed: after following your suggestion, that workaround does work for my sample flows.

NOTE: I also just heard from n8n tech support that your team has submitted a PR, which should address the root cause bug. Fingers crossed for that.

Thanks for your input on this.

Marc @ Skipp

---

<div class="post-metadata">

**Author:** ![ihortom](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/ihortom/32/11473_2.png) [@ihortom](https://community.n8n.io/u/ihortom)\
**Post date:** [September 23, 2025, 6:30pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/12 "2025-09-23T18:30:00Z")

</div>

Yes, we did. You can follow it at [fix(editor): Reflect Wait node's execution status correctly in log view by autologie · Pull Request #19898 · n8n-io/n8n · GitHub](https://github.com/n8n-io/n8n/pull/19898) and check when it is released. Hopefully you will not need a workaround soon.

---

<div class="post-metadata">

**Author:** ![alegria](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/alegria/32/78352_2.png) [@alegria](https://community.n8n.io/u/alegria)\
**Post date:** [November 17, 2025, 5:24pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/14 "2025-11-17T17:24:15Z")

</div>

Hi @ihortom, I believe I can still observe multiple executions happening after a wait node. I can provide more information if needed; please let me know how. Many Thanks!

---

<div class="post-metadata">

**Author:** ![alegria](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/alegria/32/78352_2.png) [@alegria](https://community.n8n.io/u/alegria)\
**Post date:** [November 17, 2025, 5:40pm UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/15 "2025-11-17T17:40:35Z")

</div>

I have applied the workaround from here

> [@N8n Workflow Executes Multiple Times After Wait Node](http://community.n8n.io/t/n8n-workflow-executes-multiple-times-after-wait-node/173338):
>
> Describe the problem/error/question I’ve created an n8n workflow which integrates Retell AI with my company’s GoHighLevel CRM. My n8n workflow calls back new leads if Retell indicates the lead did not pick up. After a couple of calls, it uses the wait node to wait for a certain date and time before calling them back. Then it checks if the lead’s contact id is still in the google sheet I created which temporarily stores leads that are queued to be called back. However, when I look at the executio…

However, I’m concerned that this wouldn’t fix the existing executions that are already running. Please advise. Thanks!

---

<div class="post-metadata">

**Author:** ![Highlevele](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/highlevele/32/45054_2.png) [@Highlevele](https://community.n8n.io/u/Highlevele)\
**Post date:** [December 31, 2025, 7:29am UTC](https://community.n8n.io/t/duplicate-items-generated-by-wait-after-execute-sub-workflow/185829/16 "2025-12-31T07:29:27Z")

</div>

## Problem: Duplicate Items After “Wait” + “Execute Sub-Workflow” in GoHighLevel

If your workflow is creating **duplicate tasks, messages, tags, or actions** after a **Wait step** followed by **Execute Sub-Workflow** , it usually means the workflow is being **re-triggered unintentionally**.

This is not a bug most of the time — it’s a **logic issue** in workflow design.

* * *

## Main Reasons This Happens

### 1. **Workflow Re-Enters After the Wait Step**

When a contact meets the trigger conditions again **while already inside the workflow** , GoHighLevel may:

- Re-enter the workflow

- Resume after the wait

- Execute the sub-workflow again

👉 Result: duplicates.

* * *

### 2. **Trigger Allows Multiple Entries**

If your workflow trigger is set to:

- “Runs multiple times”

- Based on tag added, pipeline stage change, form submission, etc.

Then every time that trigger fires, the workflow restarts — even for the same contact.

* * *

### 3. **Sub-Workflow Has Its Own Trigger**

If the **sub-workflow also has triggers** , and you’re executing it from a parent workflow, it can:

- Run once from execution

- Run again from its own trigger

👉 This causes double execution.

* * *

### 4. **Wait Condition + Event Happens Again**

Example:

- Wait 1 day

- Execute sub-workflow

- During that wait, the contact updates (tag added, stage changes, custom field updates)

This can cause the workflow to **recalculate** and fire again.

* * *

## How to Fix Duplicate Execution (IMPORTANT)

### ✅ 1. Enable “Allow Only One Entry”

In your **main workflow trigger settings** :

- Turn ON: **“Allow only one entry per contact”**

This alone fixes most duplicate issues.

* * *

### ✅ 2. Use a “Stop If Contact Is Already in Workflow” Tag

Best practice setup:

1. At the start of the workflow → **Add Tag**

2. Add an **If/Else condition**

3. At the very end → **Remove Tag**

This prevents re-entry during the wait period.

* * *

### ✅ 3. Remove Triggers from Sub-Workflow

Sub-workflows should:

- ❌ NOT have triggers

- ✅ Only be executed via **“Execute Sub-Workflow” action**

Think of sub-workflows as **functions** , not independent workflows.

* * *

### ✅ 4. Use “Goal” Instead of Long Waits (If Possible)

Long waits increase the chance of duplication.
