Nextflow 26.04 and parser v2 : About multiple input and output processs

Hello. I encounter a problem with running my pipeline concerning the assembly and annotation of bacterial genomes. I am new using Nextflow since v25.10 and now i updated it to the newer version 26.04. My pipeline ran well until this update. I know it’s maybe caused by the strict syntax from parser v2 but i don’t understand why the new error occurs on the declaration of multiple output and input for a specific process, my declarations of it are like this :

process CAT_ANNOTATION_INFORMATION {

tag "${sample_id}_${origin}"

input:                                                                                                              // Input files of the process
tuple val(sample_id), path(tsv_annotation), val(origin)                                                             // Files from convert_gk2gff2tsv.nf
tuple val(sample_id_2), path(old_genbank),val(origin2)                                                              // Initial annotation file


output:                                                                                                             // Output files of the process
tuple val(sample_id), path("${sample_id}.old_annotation_report.tsv"), val(origin), emit: tsv_infos_recap_old
path("${sample_id}.product_plasmid.tsv"), emit: plasmid
path("${sample_id}.product_bacterio_pro_phage.tsv"), emit: phage
path("${sample_id}.product_IS_family.tsv"), emit: is_family
path("${sample_id}.product_crispr.tsv"), emit: crispr

script:
"""
....
"""

And when I tried to run the pipeline, the log file showed this :

I wonder if someone could help me to understand what I possibly did wrong when I created the pipeline. Thanks for the future response !

Hi @mg-btiger , I tried to run your process with a dummy workflow but I was not able to reproduce the error. As far as I can tell your code looks correct. Can you provide a minimal example that I can run?

Thanks for the response @bentsherman, I looked the different scripts a little more in the pipeline and I found where the error can be in this process :

process TSV4BAKTA {
    tag "${sample_id}\_${origin}"

    input:

    tuple val(sample_id), path(bakta_summary_txt), val(origin)

    tuple val(sample_id), path(tsv_annotation), val(origin)



    output:

    tuple val(sample_id), path("${sample_id}.bakta_report.tsv"), val(origin), emit: tsv

    tuple val (sample_id), path ("${sample_id}.product_plasmid.tsv"), val(origin), emit: plasmid

    tuple val (sample_id), path ("${sample_id}.product_bacterio_pro_phage.tsv"), val(origin), emit: phage

    tuple val (sample_id), path ("${sample_id}.product_IS_family.tsv"), val(origin), emit: is_family


    script:
    """
     ....
    """

I think more is this input which the error is, in fact when I run the pipeline with parser v1 and I think it’s probably this input which cause it, because i gave the same value name of the two inputs and parser v1 was more permissive and maybe the reason I have this problem now.

Yes, you need to rename the variables in the second input channel to sample_id2 and origin2. This was indeed not triggering an error with the old parser, which was bad, as it could lead to unintentional overwriting of variables.

Thanks for the response @Alexander_Nater , I was indeed careful with all the scripts, but this one slipped through.