Skip to content

Workflow output with file publish targets causes NullPointerException #6340

@abehr

Description

@abehr

Bug report

Expected behavior and actual behavior

Trying out the new Workflow outputs (third preview version). I'm attempting to reproduce publishDir behavior, where individual files from process outputs can be renamed.

The correct published outputs are generated successfully, but then immediately afterwards there was a NPE. Not sure if it's related but I think it is, because when I redefine the output directive more simply, the NPE doesn't happen.

Steps to reproduce

process multiqc {
  // ...

  output:
  tuple val(srr), path('multiqc_report.html'), path('multiqc_data/multiqc_data.json'), path('multiqc_data/multiqc_fastqc.txt')

  // ...
}

workflow {
  main:
  // ...

  publish:
  mqc = multiqc.out
}

output {
  mqc {
    path { srr, report, data_json, fastqc_txt ->
      report >> "02.multiQC/${srr}_report.html"
      data_json >> "02.multiQC/${srr}_data.json"
      fastqc_txt >> "02.multiQC/${srr}_fastqc.txt"
    }
  }
}

Program output

 Aug-12 14:26:56.087 [Actor Thread 12] ERROR nextflow.extension.DataflowHelper - @unknown
 java.lang.NullPointerException: null
     at java.base/java.util.Objects.requireNonNull(Objects.java:220)
     at java.base/sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:296)
     at java.base/java.nio.file.Path.resolve(Path.java:516)
     at nextflow.extension.PublishOp$_getTargetDir_closure1.doCall(PublishOp.groovy:144)
     at nextflow.extension.PublishOp$_getTargetDir_closure1.call(PublishOp.groovy)
     at nextflow.extension.PublishOp.normalizePath(PublishOp.groovy:308)
     at nextflow.extension.PublishOp.access$0(PublishOp.groovy)
     at nextflow.extension.PublishOp$_normalizePaths_closure2.doCall(PublishOp.groovy:269)
     at nextflow.extension.PublishOp$_normalizePaths_closure2.call(PublishOp.groovy)

Environment

  • Nextflow version: 25.04.6 build 5954
  • Java version: openjdk 23.0.2
  • Operating system: Linux
  • Bash version: 4.2 (zsh 5.0.2)

Additional context

(Add any other context about the problem here)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions