ITADN

Seqera configuration incompatibilites with NXF_SYNTAX_PARSER=v2

#6994Openaringeri 创建于 2026-03-31
A
aringericommented
## Bug report ### Expected behavior and actual behavior I have been trying to run a pipeline that uses strict syntax (`NXF_SYNTAX_PARSER=v2`) in seqera cloud but get the following error: ``` nextflow is provided as is with no guarantees! Please direct any issues to: https://github.com/nextflow-io/nextflow/issues NXF_WORK set to /<my-dir>/ring/nextflow/work. Files will be automatically deleted in accordance with VAST scratch policies. Loading nextflow/25.10.0 Loading requirement: apptainer/1.4.1 miniconda3/latest micromamba/latest Nextflow 25.10.4 is available - Please consider updating your version to it N E X T F L O W ~ version 25.10.0 Pulling aringeri/seqera-with-strict-syntax ... downloaded from https://github.com/aringeri/seqera-with-strict-syntax.git Error nf-5UjStx99jR3aO7.config:2:18: `NXF_TML_FILE` is not defined │ 2 | timeline.file = "$NXF_TML_FILE" ╰ | ^^^^^^^^^^^^^ ERROR ~ Config parsing failed -- Check 'nf-5UjStx99jR3aO7.log' file for details ``` ### Steps to reproduce the problem I have access to a self-hosted seqera cloud: Version 25.3.1_ad8c46a I am running Tower Agent version 0.5.0 (build d758993). I am running Nextflow version 25.10.0 build 10289 I am using a SLURM compute environment with minimal customization. This is a minimal nextflow pipeline that reproduces the error: https://github.com/aringeri/seqera-with-strict-syntax I create the pipeline in seqera pointing to that github repository and set the pre-run script to the following: <img width="359" height="466" alt="Image" src="https://github.com/user-attachments/assets/edb088b9-24ff-4831-8323-a36c28b2f8a1" /> I launch the pipeline and it fails in the config parsing step. ### Program output ``` Apr-01 09:52:06.681 [main] ERROR nextflow.cli.Launcher - Config parsing failed nextflow.exception.ConfigParseException: Config parsing failed at nextflow.config.parser.v2.ConfigParserV2.parse(ConfigParserV2.groovy:143) at nextflow.config.parser.v2.ConfigParserV2.parse(ConfigParserV2.groovy:172) at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) at nextflow.config.ConfigBuilder.parse0(ConfigBuilder.groovy:454) at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) at nextflow.config.ConfigBuilder.merge0(ConfigBuilder.groovy:438) at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) at nextflow.config.ConfigBuilder.buildConfig0(ConfigBuilder.groovy:395) at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) at nextflow.config.ConfigBuilder.buildGivenFiles(ConfigBuilder.groovy:336) at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) at nextflow.config.ConfigBuilder.buildConfigObject(ConfigBuilder.groovy:833) at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) at nextflow.config.ConfigBuilder.build(ConfigBuilder.groovy:846) at nextflow.cli.CmdRun.run(CmdRun.groovy:358) at nextflow.cli.Launcher.run(Launcher.groovy:515) at nextflow.cli.Launcher.main(Launcher.groovy:675) Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: _nf_config_b2a57dfd6f23f311: 2: `NXF_TML_FILE` is not defined @ line 2, column 18. timeline.file = "$NXF_TML_FILE" ^ 1 error at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:292) at org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:878) at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:660) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:634) at nextflow.config.parser.v2.ConfigCompiler.compile0(ConfigCompiler.java:112) at nextflow.config.parser.v2.ConfigCompiler.compile(ConfigCompiler.java:97) at nextflow.config.parser.v2.ConfigParserV2.parse(ConfigParserV2.groovy:125) ... 16 common frames omitted ``` See also: [nf-5UjStx99jR3aO7.log](https://github.com/user-attachments/files/26391631/nf-5UjStx99jR3aO7.log) ### Environment * Nextflow version: 25.10.0 build 10289 * Java version: openjdk 17.0.14 * Operating system: Linux * Bash version: GNU bash, version 5.1.8(1)-release ### Additional context It seems that seqera is generating a `.config` file for the run that is not compatible with the strict syntax. My understanding is that the below config file generated be Seqera should be using `"${env('NXF_TML_FILE')}"` instead of `"$NXF_TML_FILE"`: https://www.nextflow.io/docs/latest/strict-syntax.html#implicit-environment-variables ``` timeline.enabled = true timeline.file = "$NXF_TML_FILE" process.executor = 'slurm' process.queue = 'regular' executor.queueSize = 1000 workDir = '<my-work-dir>/nextflow/work' ``` This also occurs when I try to pass additional nextflow configuration settings (`nextflow.config`) via the Seqera UI: ``` Error nf-5h5yxmJLivbKvy.config:9:1: Invalid include source: '/home/users/ring/nextflow/work/https:/seqera.services.biocommons.org.au/api/ephemeral/I1GSHgUHSa86ZFNjrunEeQ' │ 9 | includeConfig 'https://seqera.services.biocommons.org.au/api/ephemeral ╰ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ```
0 条评论