# Line of code Training \> nf-core \> part 3 \> 3.5 fails me

**URL:** <https://community.seqera.io/t/line-of-code-training-nf-core-part-3-3-5-fails-me/2639>\
**Category:** Training\
**Created:** [April 20, 2026, 8:03pm UTC](https://community.seqera.io/t/line-of-code-training-nf-core-part-3-3-5-fails-me/2639 "2026-04-20T20:03:46Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![m-d-grunnill](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/m-d-grunnill/32/2414_2.png) [@m-d-grunnill](https://community.seqera.io/u/m-d-grunnill)\
**Post date:** [April 20, 2026, 8:03pm UTC](https://community.seqera.io/t/line-of-code-training-nf-core-part-3-3-5-fails-me/2639/1 "2026-04-20T20:03:46Z")

</div>

When I run the line `nextflow run . --outdir core-hello-results -profile test,docker --validate_params false` in Training \> nf-core \> part 3 \> 3.5 I get the error:

```auto
Nextflow 25.10.4 is available - Please consider updating your version to it

 N E X T F L O W ~ version 25.10.2

Launching `./main.nf` [suspicious_swartz] DSL2 - revision: b9e9b3b8de

Input/output options
  input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv
  outdir : core-hello-results

Institutional config options
  config_profile_name : Test profile
  config_profile_description: Minimal test dataset to check pipeline function

Generic options
  validate_params : false
  trace_report_suffix : 2026-04-20_19-57-37

Core Nextflow options
  runName : suspicious_swartz
  containerEngine : docker
  launchDir : /workspaces/training/hello-nf-core/core-hello
  workDir : /workspaces/training/hello-nf-core/core-hello/work
  projectDir : /workspaces/training/hello-nf-core/core-hello
  userName : root
  profile : test,docker
  configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config

!! Only displaying parameters that differ from the pipeline defaults !!
------------------------------------------------------
executor > local (6)
[b4/48c9a7] process > CORE_HELLO:HELLO:sayHello (3) [100%] 3 of 3 ✔
[d9/9b3979] process > CORE_HELLO:HELLO:convertToUpper (3) [100%] 3 of 3 ✔
[-] process > CORE_HELLO:HELLO:CAT_CAT -
[-] process > CORE_HELLO:HELLO:cowpy -
ERROR ~ Error executing process > 'CORE_HELLO:HELLO:CAT_CAT (test)'

Caused by:
  
      WARNING: This module has been deprecated. Please use nf-core/modules/find/concatenate
  
      Reason:
      This module passes all input files as shell arguments, which can exceed the UNIX ARG_MAX
      limit when concatenating large numbers of files. The find/concatenate module resolves this
      by staging files into a directory and enumerating them with `find`, and also enforces
      consistent input compression (all gzipped or all uncompressed). Also enables faster, parallel
      decompression with pigz.
      . Expression: false -- Check script 'modules/nf-core/cat/cat/main.nf' at line: 31

Source block:
  def deprecation_message = """
  WARNING: This module has been deprecated. Please use nf-core/modules/find/concatenate
  
  Reason:
  This module passes all input files as shell arguments, which can exceed the UNIX ARG_MAX
executor > local (6)
[b4/48c9a7] process > CORE_HELLO:HELLO:sayHello (3) [100%] 3 of 3 ✔
[d9/9b3979] process > CORE_HELLO:HELLO:convertToUpper (3) [100%] 3 of 3 ✔
[-] process > CORE_HELLO:HELLO:CAT_CAT -
[-] process > CORE_HELLO:HELLO:cowpy -
Execution cancelled -- Finishing pending tasks before exit
ERROR ~ Error executing process > 'CORE_HELLO:HELLO:CAT_CAT (test)'

Caused by:
  
      WARNING: This module has been deprecated. Please use nf-core/modules/find/concatenate
  
      Reason:
      This module passes all input files as shell arguments, which can exceed the UNIX ARG_MAX
      limit when concatenating large numbers of files. The find/concatenate module resolves this
      by staging files into a directory and enumerating them with `find`, and also enforces
      consistent input compression (all gzipped or all uncompressed). Also enables faster, parallel
      decompression with pigz.
      . Expression: false -- Check script 'modules/nf-core/cat/cat/main.nf' at line: 31

Source block:
  def deprecation_message = """
  WARNING: This module has been deprecated. Please use nf-core/modules/find/concatenate
  
  Reason:
  This module passes all input files as shell arguments, which can exceed the UNIX ARG_MAX
  limit when concatenating large numbers of files. The find/concatenate module resolves this
  by staging files into a directory and enumerating them with `find`, and also enforces
  consistent input compression (all gzipped or all uncompressed). Also enables faster, parallel
executor > local (6)
[b4/48c9a7] process > CORE_HELLO:HELLO:sayHello (3) [100%] 3 of 3 ✔
[d9/9b3979] process > CORE_HELLO:HELLO:convertToUpper (3) [100%] 3 of 3 ✔
[-] process > CORE_HELLO:HELLO:CAT_CAT -
[-] process > CORE_HELLO:HELLO:cowpy -
Execution cancelled -- Finishing pending tasks before exit
-[core/hello] Pipeline completed with errors-
ERROR ~ Error executing process > 'CORE_HELLO:HELLO:CAT_CAT (test)'

Caused by:
  
      WARNING: This module has been deprecated. Please use nf-core/modules/find/concatenate
  
      Reason:
      This module passes all input files as shell arguments, which can exceed the UNIX ARG_MAX
      limit when concatenating large numbers of files. The find/concatenate module resolves this
      by staging files into a directory and enumerating them with `find`, and also enforces
      consistent input compression (all gzipped or all uncompressed). Also enables faster, parallel
      decompression with pigz.
      . Expression: false -- Check script 'modules/nf-core/cat/cat/main.nf' at line: 31

Source block:
  def deprecation_message = """
  WARNING: This module has been deprecated. Please use nf-core/modules/find/concatenate
  
  Reason:
  This module passes all input files as shell arguments, which can exceed the UNIX ARG_MAX
  limit when concatenating large numbers of files. The find/concatenate module resolves this
  by staging files into a directory and enumerating them with `find`, and also enforces
  consistent input compression (all gzipped or all uncompressed). Also enables faster, parallel
  decompression with pigz.
  """
  assert false: deprecation_message
  def file_list = files_in.collect { file -> file.toString() }
  prefix = task.ext.prefix ?: "${meta.id}${getFileSuffix(file_list[0])}"

Container:
  quay.io/biocontainers/pigz:2.8

Tip: you can try to figure out what's wrong by changing to the process work dir and showing the script file named `.command.sh`

 -- Check '.nextflow.log' file for details
ERROR ~ Pipeline failed. Please refer to troubleshooting docs: https://nf-co.re/docs/usage/troubleshooting

 -- Check '.nextflow.log' file for details

```

---

<div class="post-metadata">

**Author:** ![m-d-grunnill](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/m-d-grunnill/32/2414_2.png) [@m-d-grunnill](https://community.seqera.io/u/m-d-grunnill)\
**Post date:** [April 20, 2026, 8:25pm UTC](https://community.seqera.io/t/line-of-code-training-nf-core-part-3-3-5-fails-me/2639/2 "2026-04-20T20:25:20Z")

</div>

I solved this problem. I think these were the steps that worked:

Step 1:  
Install find/concatenate in `./core hello/` with `nf-core modules install find/concatenate`.

Step 2:  
Change `core-hello/workflows/hello.nf` contents to:  
```  
/\*

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

```
IMPORT MODULES / SUBWORKFLOWS / FUNCTIONS

```

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

\*/

include { paramsSummaryMap } from ‘plugin/nf-schema’

include { softwareVersionsToYAML } from ‘../subworkflows/nf-core/utils\_nfcore\_pipeline’

include { sayHello } from ‘../modules/local/sayHello.nf’

include { convertToUpper } from ‘../modules/local/convertToUpper.nf’

include { cowpy } from ‘../modules/local/cowpy.nf’

include { FIND\_CONCATENATE } from ‘../modules/nf-core/find/concatenate/main’

/\*

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

```
RUN MAIN WORKFLOW

```

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

\*/

workflow HELLO {

```
take:

ch_samplesheet // channel: samplesheet read in from --input

main:

ch_versions = channel.empty()

// emit a greeting

sayHello(ch_samplesheet)

// convert the greeting to uppercase

convertToUpper(sayHello.out)

// create metadata map with batch name as the ID

def concatenate_meta = \[id: params.batch \]

// create a channel with metadata and files in tuple format

ch_for_concatenate = convertToUpper.out.collect().map { files -> tuple(concatenate_meta, files) }

// concatenate the greetings

FIND_CONCATENATE(ch_for_concatenate)

// extract the file from the tuple since cowpy doesn't use metadata yet

ch_for_cowpy = FIND_CONCATENATE.out.file_out.map{ meta, file -> file }

// generate ASCII art of the greetings with cowpy

cowpy(ch_for_cowpy, params.character)

//

// Collate and save software versions

//

def topic_versions = Channel.topic("versions")

    .distinct()

    .branch { entry ->

        versions_file: entry instanceof Path

        versions_tuple: true

    }

def topic_versions_string = topic_versions.versions_tuple

    .map { process, tool, version ->

        \[process\[process.lastIndexOf(':')+1..-1\], " ${tool}: ${version}" \]

    }

    .groupTuple(by:0)

    .map { process, tool_versions ->

        tool_versions.unique().sort()

        "${process}:\\n${tool_versions.join('\\n')}"

    }

softwareVersionsToYAML(ch_versions.mix(topic_versions.versions_file))

    .mix(topic_versions_string)

    .collectFile(

        storeDir: "${params.outdir}/pipeline_info",

        name: 'hello_software\_' + 'versions.yml',

        sort: true,

        newLine: true

    ).set { ch_collated_versions }

emit:

cowpy_hellos = cowpy.out

versions = ch_versions // channel: \[path(versions.yml) \]

```

}

/\*

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

```
THE END

```

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

\*/  
```

---

<div class="post-metadata">

**Author:** ![GeraldineVdA](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/geraldinevda/32/178_2.png) [@GeraldineVdA](https://community.seqera.io/u/GeraldineVdA)\
**Post date:** [April 21, 2026, 9:38pm UTC](https://community.seqera.io/t/line-of-code-training-nf-core-part-3-3-5-fails-me/2639/3 "2026-04-21T21:38:48Z")

</div>

Hi Martin, thanks for reporting this, I’m going to update the materials accordingly. Nice job solving it yourself!

---

<div class="post-metadata">

**Author:** ![m-d-grunnill](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/m-d-grunnill/32/2414_2.png) [@m-d-grunnill](https://community.seqera.io/u/m-d-grunnill)\
**Post date:** [April 22, 2026, 1:13pm UTC](https://community.seqera.io/t/line-of-code-training-nf-core-part-3-3-5-fails-me/2639/4 "2026-04-22T13:13:57Z")

</div>

I think that was all the steps. Just test it to check I am not missing anything.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/system/32/2402_2.png) [@system](https://community.seqera.io/u/system)\
**Post date:** [April 29, 2026, 1:14pm UTC](https://community.seqera.io/t/line-of-code-training-nf-core-part-3-3-5-fails-me/2639/5 "2026-04-29T13:14:38Z")

</div>

Closed on April 29, 2026, 1:14pm UTC

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
