<p dir="auto">Duplicate</p>
<h1 dir="auto">Checklist</h1>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> This has already been asked to the <a href="https://github.com/celery/celery/discussions">discussions forum</a> first.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have read the relevant section in the<br>
<a href="http://docs.celeryproject.org/en/latest/contributing.html#other-bugs" rel="nofollow">contribution guide</a><br>
on reporting bugs.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/issues?q=is%3Aissue+label%3A%22Issue+Type%3A+Bug+Report%22+-label%3A%22Category%3A+Documentation%22">issues list</a><br>
for similar or identical bug reports.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/pulls?q=is%3Apr+label%3A%22PR+Type%3A+Bugfix%22+-label%3A%22Category%3A+Documentation%22">pull requests list</a><br>
for existing proposed fixes.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/commits/master">commit log</a><br>
to find out if the bug was already fixed in the master branch.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all related issues and possible duplicate issues<br>
in this issue (If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Mandatory Debugging Information</h2>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included the output of <code class="notranslate">celery -A proj report</code> in the issue.<br>
(if you are not able to do this, then at least specify the Celery<br>
version affected).</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included the contents of <code class="notranslate">pip freeze</code> in the issue.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all the versions of all the external dependencies required<br>
to reproduce this bug.</li>
</ul>
<h2 dir="auto">Optional Debugging Information</h2>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one Python version<br>
and/or implementation.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one message broker and/or<br>
result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one version of the message<br>
broker and/or result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue on more than one operating system.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one workers pool.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue with autoscaling, retries,<br>
ETA/Countdown &amp; rate limits disabled.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue after downgrading<br>
and/or upgrading Celery and its dependencies.</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h2 dir="auto">Environment &amp; Settings</h2>

<p dir="auto"><strong>Celery version</strong>: celery:5.2.3 (dawn-chorus)</p>

<details>
<summary><b><code class="notranslate">celery report</code> Output:</b></summary>
<p dir="auto">
</p><div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="software -&gt; celery:5.2.3 (dawn-chorus) kombu:5.2.3 py:3.9.10
            billiard:3.6.4.0 redis:4.1.2
platform -&gt; system:Linux arch:64bit, ELF
            kernel version:4.4.0-19041-Microsoft imp:CPython
loader   -&gt; celery.loaders.app.AppLoader
settings -&gt; transport:redis results:django-celery-results-backend
"><pre class="notranslate"><code class="notranslate">software -&gt; celery:5.2.3 (dawn-chorus) kombu:5.2.3 py:3.9.10
            billiard:3.6.4.0 redis:4.1.2
platform -&gt; system:Linux arch:64bit, ELF
            kernel version:4.4.0-19041-Microsoft imp:CPython
loader   -&gt; celery.loaders.app.AppLoader
settings -&gt; transport:redis results:django-celery-results-backend

</code></pre></div>
<p dir="auto"></p>
</details>
<h1 dir="auto">Steps to Reproduce</h1>
<h2 dir="auto">Required Dependencies</h2>

<ul dir="auto">
<li><strong>Minimal Python Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Celery Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Kombu Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Version</strong>: N/A or Unknown</li>
<li><strong>Minimal OS and/or Kernel Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Client Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Client Version</strong>: N/A or Unknown</li>
</ul>
<h3 dir="auto">Python Packages</h3>

<details>
<summary><b><code class="notranslate">pip freeze</code> Output:</b></summary>
<p dir="auto">
</p><div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=""><pre class="notranslate"><code class="notranslate"></code></pre></div>
<p dir="auto"></p>
</details>
<h3 dir="auto">Other Dependencies</h3>

<details>
<p dir="auto">
N/A
</p>
</details>
<h2 dir="auto">Minimally Reproducible Test Case</h2>

<details>
<p dir="auto">
</p><div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content=""><pre class="notranslate"></pre></div>
<p dir="auto"></p>
</details>
<h1 dir="auto">Expected Behavior</h1>

<p dir="auto">All the tasks will be submitted to the queue</p>
<h1 dir="auto">Actual Behavior</h1>
<p dir="auto">Hi all, I'm experiencing a weird behavior/bug after upgrading from celery 5.05 to celery 5.2.3.<br>
I'm trying to create a chord that consists of a group of 10 tasks.<br>
When I'm using an iterator to build the celery group, only 2 tasks are published. When I'm using the exact same iterator but converting it to a list, it publishes all the 10 tasks. The same code works under celery 5.0.5.</p>
<p dir="auto">I'm posting the code I'm running both with celery 5.0.5 and with celery 5.2.3 (no worker is running)</p>
<p dir="auto">Example on celery 5.2.3:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [14]: (celery.group(task_a.s(i) for i in range(10)) | task_b.s(999)).apply_async() # note: the group is taking an iterator as input
Out[14]: &lt;AsyncResult: f003701a-3996-4ad8-aeae-13daf9fd1290&gt;

In [15]: redis_client.llen('celery')
Out[15]: 3    # The 3 tasks that are in the queue are the 2 first group tasks + a chord unlock task

In [16]: redis_client.flushdb()
Out[16]: True

In [17]: redis_client.llen('celery')
Out[17]: 0

In [18]: (celery.group([task_a.s(i) for i in range(10)]) | task_b.s(999)).apply_async() # note: the group is taking a list as input
Out[18]: &lt;AsyncResult: 67332373-accb-4ca7-9cb3-3dcd276cacca&gt;

In [19]: redis_client.llen('celery')
Out[19]: 11

celery report:
software -&gt; celery:5.2.3 (dawn-chorus) kombu:5.2.3 py:3.9.10
            billiard:3.6.4.0 redis:4.1.2
platform -&gt; system:Linux arch:64bit, ELF
            kernel version:4.4.0-19041-Microsoft imp:CPython
loader   -&gt; celery.loaders.app.AppLoader
settings -&gt; transport:redis results:django-celery-results-backend"><pre class="notranslate"><code class="notranslate">In [14]: (celery.group(task_a.s(i) for i in range(10)) | task_b.s(999)).apply_async() # note: the group is taking an iterator as input
Out[14]: &lt;AsyncResult: f003701a-3996-4ad8-aeae-13daf9fd1290&gt;

In [15]: redis_client.llen('celery')
Out[15]: 3    # The 3 tasks that are in the queue are the 2 first group tasks + a chord unlock task

In [16]: redis_client.flushdb()
Out[16]: True

In [17]: redis_client.llen('celery')
Out[17]: 0

In [18]: (celery.group([task_a.s(i) for i in range(10)]) | task_b.s(999)).apply_async() # note: the group is taking a list as input
Out[18]: &lt;AsyncResult: 67332373-accb-4ca7-9cb3-3dcd276cacca&gt;

In [19]: redis_client.llen('celery')
Out[19]: 11

celery report:
software -&gt; celery:5.2.3 (dawn-chorus) kombu:5.2.3 py:3.9.10
            billiard:3.6.4.0 redis:4.1.2
platform -&gt; system:Linux arch:64bit, ELF
            kernel version:4.4.0-19041-Microsoft imp:CPython
loader   -&gt; celery.loaders.app.AppLoader
settings -&gt; transport:redis results:django-celery-results-backend
</code></pre></div>
<p dir="auto">Example on celery 5.0.5:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [7]: (celery.group(task_a.s(i) for i in range(10)) | task_b.s(999)).apply_async() # note: the group is taking an iterator as input
Out[7]: &lt;AsyncResult: bb395128-1ebb-4181-9def-9d0c26bb88ff&gt;

In [8]: redis_client.llen('celery')
Out[8]: 10

In [9]: redis_client.flushdb()
Out[9]: True

In [10]: redis_client.llen('celery')
Out[10]: 0

In [11]: (celery.group([task_a.s(i) for i in range(10)]) | task_b.s(999)).apply_async() # note: the group is taking a list as input
Out[11]: &lt;AsyncResult: d3344171-3dae-475f-9c5e-895aff5e6be0&gt;

In [12]: redis_client.llen('celery')
Out[12]: 10

celery report:
software -&gt; celery:5.0.5 (singularity) kombu:5.2.3 py:3.9.10
            billiard:3.6.4.0 redis:4.1.2
platform -&gt; system:Linux arch:64bit, ELF
            kernel version:4.4.0-19041-Microsoft imp:CPython
loader   -&gt; celery.loaders.app.AppLoader
settings -&gt; transport:redis results:django-celery-results-backend"><pre class="notranslate"><code class="notranslate">In [7]: (celery.group(task_a.s(i) for i in range(10)) | task_b.s(999)).apply_async() # note: the group is taking an iterator as input
Out[7]: &lt;AsyncResult: bb395128-1ebb-4181-9def-9d0c26bb88ff&gt;

In [8]: redis_client.llen('celery')
Out[8]: 10

In [9]: redis_client.flushdb()
Out[9]: True

In [10]: redis_client.llen('celery')
Out[10]: 0

In [11]: (celery.group([task_a.s(i) for i in range(10)]) | task_b.s(999)).apply_async() # note: the group is taking a list as input
Out[11]: &lt;AsyncResult: d3344171-3dae-475f-9c5e-895aff5e6be0&gt;

In [12]: redis_client.llen('celery')
Out[12]: 10

celery report:
software -&gt; celery:5.0.5 (singularity) kombu:5.2.3 py:3.9.10
            billiard:3.6.4.0 redis:4.1.2
platform -&gt; system:Linux arch:64bit, ELF
            kernel version:4.4.0-19041-Microsoft imp:CPython
loader   -&gt; celery.loaders.app.AppLoader
settings -&gt; transport:redis results:django-celery-results-backend
</code></pre></div>