Skip to content

Multi-channel output cannot be applied to operator for which argument is already provided

Issue

You get an error such as

Multi-channel output cannot be applied to operator mix for which argument is already provided

Possible source

You likely forgot to specify the output channel of a multi-channel output module or subworkflow, i.e.,

ch_output = MODULE_A ( input )

MODULE_B ( ch_output )

should be

ch_output = MODULE_A ( input ).reads

MODULE_B ( ch_output )

Recommendation

Use static typing with Nextflow 26.10 or later. nextflow lint reports a multi-output result passed to an operator or process, and lists its output channels. Better yet, give each typed process a single record output, so that the result is one channel and there is nothing to pick from.