diff --git a/CHANGELOG.md b/CHANGELOG.md
index f418dc0af0..81cb62ede1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -49,6 +49,7 @@
 - Update codecov/codecov-action action to v5 ([#3283](https://github.com/nf-core/tools/pull/3283))
 - Update python:3.12-slim Docker digest to 2a6386a ([#3284](https://github.com/nf-core/tools/pull/3284))
 - Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.0 ([#3299](https://github.com/nf-core/tools/pull/3299))
+- Remove toList() channel operation from inside onComplete block ([#3304](https://github.com/nf-core/tools/pull/3304))
 
 ## [v3.0.2 - Titanium Tapir Patch](https://github.com/nf-core/tools/releases/tag/3.0.2) - [2024-10-11]
 
diff --git a/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf b/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf
index be5776b836..06692f1dc9 100644
--- a/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf
+++ b/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf
@@ -140,6 +140,10 @@ workflow PIPELINE_COMPLETION {
     summary_params = [:]
     {%- endif %}
 
+    {%- if multiqc %}
+    def multiqc_reports = multiqc_report.toList()
+    {%- endif %}
+    
     //
     // Completion email and summary
     //
@@ -153,7 +157,7 @@ workflow PIPELINE_COMPLETION {
                 plaintext_email,
                 outdir,
                 monochrome_logs,
-                {% if multiqc %}multiqc_report.toList(){% else %}[]{% endif %}
+                {% if multiqc %}multiqc_reports.getVal(),{% else %}[]{% endif %}
             )
         }
         {%- endif %}