# CWL Questions

**URL:** https://cwl.discourse.group/c/q-and-a/5.md

[Latest](https://cwl.discourse.group/latest.md) · [Categories](https://cwl.discourse.group/categories.md)

---

## [About the CWL Questions category](https://cwl.discourse.group/t/about-the-cwl-questions-category/13)

<div class="topic-metadata">

**Author:** [@mrc](https://cwl.discourse.group/u/mrc)\
**Replies:** 0

</div>

Ask your question about writing or using CWL here.

---

## [Cwl-utils load\_document\_by\_uri failing with $include in InlineJavascriptRequirement](https://cwl.discourse.group/t/cwl-utils-load-document-by-uri-failing-with-include-in-inlinejavascriptrequirement/1060)

<div class="topic-metadata">

**Author:** [@kennethdirker](https://cwl.discourse.group/u/kennethdirker)\
**Replies:** 1\
**Last updated:** [August 14, 2026, 7:16am UTC](https://cwl.discourse.group/t/cwl-utils-load-document-by-uri-failing-with-include-in-inlinejavascriptrequirement/1060 "2026-08-14T07:16:17Z")

</div>

Good day, I am building a transpiler that reads CWL processes and generates Python code that runs the tools/workflows using DASK. I am reading the CWL process files with cwl\_utils.parser.load\_document\_by\_uri, which work…

---

## [Attempting to stage multiple files into a directory](https://cwl.discourse.group/t/attempting-to-stage-multiple-files-into-a-directory/1044)

<div class="topic-metadata">

**Author:** [@skgo](https://cwl.discourse.group/u/skgo)\
**Replies:** 4\
**Last updated:** [April 2, 2026, 7:46pm UTC](https://cwl.discourse.group/t/attempting-to-stage-multiple-files-into-a-directory/1044 "2026-04-02T19:46:35Z")

</div>

I am attempting to pass in multiple files as inputs and stage those specific files into a directory, which is provided as a named input to my tool. Specifically, this is for hisat2. I am unable to provide them up front i…

---

## [Using type from packed tool](https://cwl.discourse.group/t/using-type-from-packed-tool/1045)

<div class="topic-metadata">

**Author:** [@davidjsherman](https://cwl.discourse.group/u/davidjsherman)\
**Replies:** 0\
**Last updated:** [March 30, 2026, 10:29pm UTC](https://cwl.discourse.group/t/using-type-from-packed-tool/1045 "2026-03-30T22:29:55Z")

</div>

Our workflows use command line tools included raw from a static web site, using a namespace as in method (4) of bio-cwl-tools. Some of our tools define types, which we include in the usual way with SchemaDefRequirement. …

---

## [Tool 'activate'](https://cwl.discourse.group/t/tool-activate/1042)

<div class="topic-metadata">

**Author:** [@yvdriess](https://cwl.discourse.group/u/yvdriess)\
**Replies:** 3\
**Last updated:** [March 25, 2026, 3:18pm UTC](https://cwl.discourse.group/t/tool-activate/1042 "2026-03-25T15:18:21Z")

</div>

Hello, CWL community! Question, in short: Is there a clean way to use cwltool or some other runner to go through execution environment setup steps, without executing the actual base command? Some context. What I would …

---

## [Idn2 not working when used as baseCommand](https://cwl.discourse.group/t/idn2-not-working-when-used-as-basecommand/1043)

<div class="topic-metadata">

**Author:** [@lbeziaud](https://cwl.discourse.group/u/lbeziaud)\
**Replies:** 2\
**Last updated:** [March 6, 2026, 1:57pm UTC](https://cwl.discourse.group/t/idn2-not-working-when-used-as-basecommand/1043 "2026-03-06T13:57:34Z")

</div>

Hi I am attempting to use idn2 to encode utf-8 domain names as IDNA2008: $ idn2 é.fr xn--9ca.fr Used as a CommandLineTool, the tool fails with utf-8 strings (ok with eg e.fr): #!/usr/bin/env cwl-runner cwlVersion: v1…

---

## [Default value for a \`type: File\` with \`secondaryFiles\`](https://cwl.discourse.group/t/default-value-for-a-type-file-with-secondaryfiles/1031)

<div class="topic-metadata">

**Author:** [@Stikus](https://cwl.discourse.group/u/Stikus)\
**Replies:** 2\
**Last updated:** [February 18, 2026, 9:43am UTC](https://cwl.discourse.group/t/default-value-for-a-type-file-with-secondaryfiles/1031 "2026-02-18T09:43:25Z")

</div>

Hello, I’m trying to set default file input for workflow step, but with secondaryFiles. For now I’ve achieved working example without secondary (.tbi), but cannot fix this problem. Working example: steps: - id: S\_ve…

---

## [Developer Contributing Guide](https://cwl.discourse.group/t/developer-contributing-guide/1030)

<div class="topic-metadata">

**Author:** [@aldbr](https://cwl.discourse.group/u/aldbr)\
**Replies:** 1\
**Last updated:** [February 18, 2026, 9:33am UTC](https://cwl.discourse.group/t/developer-contributing-guide/1030 "2026-02-18T09:33:02Z")

</div>

Dear CWL maintainers, Thank you for your job, we really appreciate CWL and would like to contribute to the project from time to time. Is there any documentation to onboard new contributors and explain the relationship …

---

## [Constructing a default value for a tool input](https://cwl.discourse.group/t/constructing-a-default-value-for-a-tool-input/161)

<div class="topic-metadata">

**Author:** [@skanwal](https://cwl.discourse.group/u/skanwal)\
**Replies:** 4\
**Last updated:** [June 28, 2020, 11:31pm UTC](https://cwl.discourse.group/t/constructing-a-default-value-for-a-tool-input/161 "2020-06-28T23:31:16Z")

</div>

Hello, I am looking to define a default value for a file input (metadata in the below example) in a CWL tool definition, using value of another input. I’ve seen examples for constructing string inputs using javascript b…

---

## [Docker tool not found but is present in the system](https://cwl.discourse.group/t/docker-tool-not-found-but-is-present-in-the-system/969)

<div class="topic-metadata">

**Author:** [@peterg1t](https://cwl.discourse.group/u/peterg1t)\
**Replies:** 3\
**Last updated:** [January 15, 2026, 6:33pm UTC](https://cwl.discourse.group/t/docker-tool-not-found-but-is-present-in-the-system/969 "2026-01-15T18:33:53Z")

</div>

I installed toil\[cwl\] in a new arm mac laptop. I have a simple job that zips a file using a container image with a zip utility. cwltool --debug workflows/pipeline-simple\_workflow.cwl workflows/inputs.yml I ran however …

---

## [Complex workflow cannot be packed](https://cwl.discourse.group/t/complex-workflow-cannot-be-packed/1022)

<div class="topic-metadata">

**Author:** [@alexiswl](https://cwl.discourse.group/u/alexiswl)\
**Replies:** 3\
**Last updated:** [October 26, 2025, 10:19pm UTC](https://cwl.discourse.group/t/complex-workflow-cannot-be-packed/1022 "2025-10-26T22:19:57Z")

</div>

Hi team, I have a workflow that generates invalid imports when packed. From Release dragen-wgts-dna-pipeline/4.4.4\_\_20251009055750 · umccr/cwl-ica I have a attached a copy of the zipped workflow and the subsequent pa…

---

## [How does ResourceRequirement work?](https://cwl.discourse.group/t/how-does-resourcerequirement-work/1019)

<div class="topic-metadata">

**Author:** [@Stellatsuu](https://cwl.discourse.group/u/Stellatsuu)\
**Replies:** 5\
**Last updated:** [October 23, 2025, 2:02pm UTC](https://cwl.discourse.group/t/how-does-resourcerequirement-work/1019 "2025-10-23T14:02:28Z")

</div>

Hi, I’m working on a project that uses Workflows with ResourceRequirement entries. I’ve been trying to detect any conflicts between ramMin/ramMax and coresMin/coresMax values in our CWL files. As asked by my coworker, …

---

## [Output files not next to each other in next step](https://cwl.discourse.group/t/output-files-not-next-to-each-other-in-next-step/1020)

<div class="topic-metadata">

**Author:** [@EmileSonneveld](https://cwl.discourse.group/u/EmileSonneveld)\
**Replies:** 5\
**Last updated:** [October 23, 2025, 12:06pm UTC](https://cwl.discourse.group/t/output-files-not-next-to-each-other-in-next-step/1020 "2025-10-23T12:06:54Z")

</div>

Hi, I have a Workflow where one step outputs files and the next does some processing on it. The files refer to each other with links like "href": "./openEO\_2023-06-01Z.tif.json", However those links are broken in the …

---

## [Is it possible to always pull latest Docker image?](https://cwl.discourse.group/t/is-it-possible-to-always-pull-latest-docker-image/999)

<div class="topic-metadata">

**Author:** [@EmileSonneveld](https://cwl.discourse.group/u/EmileSonneveld)\
**Replies:** 3\
**Last updated:** [September 22, 2025, 3:47pm UTC](https://cwl.discourse.group/t/is-it-possible-to-always-pull-latest-docker-image/999 "2025-09-22T15:47:05Z")

</div>

Hi, I am developing a new CWL pipeline and often update the used Docker image. I use something like this: cwlVersion: v1.0 class: CommandLineTool requirements: DockerRequirement: dockerPull: registry.XXX.eu/my\_i…

---

## [CUDARequirement validation error with latest cwltool](https://cwl.discourse.group/t/cudarequirement-validation-error-with-latest-cwltool/1015)

<div class="topic-metadata">

**Author:** [@lmizzoni](https://cwl.discourse.group/u/lmizzoni)\
**Replies:** 1\
**Last updated:** [September 12, 2025, 2:21pm UTC](https://cwl.discourse.group/t/cudarequirement-validation-error-with-latest-cwltool/1015 "2025-09-12T14:21:22Z")

</div>

Hi everyone, Apologies if this has been asked before, but I couldn’t find any information on it. I’m working with CWL and CUDARequirement, and I’ve noticed a validation issue when using the latest version of cwltool (3…

---

## [Monitoring execution of CWL Workflows?](https://cwl.discourse.group/t/monitoring-execution-of-cwl-workflows/1010)

<div class="topic-metadata">

**Author:** [@BrunoRodrigues](https://cwl.discourse.group/u/BrunoRodrigues)\
**Replies:** 0\
**Last updated:** [July 8, 2025, 4:20pm UTC](https://cwl.discourse.group/t/monitoring-execution-of-cwl-workflows/1010 "2025-07-08T16:20:34Z")

</div>

Is there some ready made tool to monitor the execution of CWL Workflows? I’m currently using cwltool as my runner. By “monitor”, I mean some tool that would show the current progress of the workflow in a structured mann…

---

## [Best Practices for Avoiding "Argument List Too Long" in Large-Scale Workflows](https://cwl.discourse.group/t/best-practices-for-avoiding-argument-list-too-long-in-large-scale-workflows/1008)

<div class="topic-metadata">

**Author:** [@jma1991](https://cwl.discourse.group/u/jma1991)\
**Replies:** 1\
**Last updated:** [July 7, 2025, 12:48pm UTC](https://cwl.discourse.group/t/best-practices-for-avoiding-argument-list-too-long-in-large-scale-workflows/1008 "2025-07-07T12:48:44Z")

</div>

Hi everyone, I’m looking for some clarity on issues I frequently encounter when working with large-scale processing workflows. Here’s the usual scenario: I have a tool that processes a single file, and it is scattered …

---

## [Difficulty using fgbio with CWL](https://cwl.discourse.group/t/difficulty-using-fgbio-with-cwl/1004)

<div class="topic-metadata">

**Author:** [@skgo](https://cwl.discourse.group/u/skgo)\
**Replies:** 2\
**Last updated:** [June 10, 2025, 12:05pm UTC](https://cwl.discourse.group/t/difficulty-using-fgbio-with-cwl/1004 "2025-06-10T12:05:46Z")

</div>

I’m trying to write a tool for running fgbio ExtractUmisFromBam and am having some difficulty with a particular argument. The molecular\_index\_tags argument expects a string of SAM tags of any length. When I provide a str…

---

## [Sample Sheets and the dynamic creation of Files](https://cwl.discourse.group/t/sample-sheets-and-the-dynamic-creation-of-files/1002)

<div class="topic-metadata">

**Author:** [@markjschreiber](https://cwl.discourse.group/u/markjschreiber)\
**Replies:** 1\
**Last updated:** [May 19, 2025, 11:38am UTC](https://cwl.discourse.group/t/sample-sheets-and-the-dynamic-creation-of-files/1002 "2025-05-19T11:38:34Z")

</div>

Apologies if this is a repeat. I found some much older questions on this but the solutions appear to be work arounds for older schemas and links are broken. My question is - I have a csv input (a sample sheet) with pair…

---

## [Best practice metadata and attribution](https://cwl.discourse.group/t/best-practice-metadata-and-attribution/993)

<div class="topic-metadata">

**Author:** [@Brilator](https://cwl.discourse.group/u/Brilator)\
**Replies:** 2\
**Last updated:** [April 24, 2025, 1:37pm UTC](https://cwl.discourse.group/t/best-practice-metadata-and-attribution/993 "2025-04-24T13:37:47Z")

</div>

Hi, while trying to implement the recommended practices for proper attribution to software developers (e.g. 2.16. Best Practices — Common Workflow Language User Guide 0.1 documentation, 2.18. Metadata and Authorship — C…

---

## [Scattering doesn't work](https://cwl.discourse.group/t/scattering-doesnt-work/994)

<div class="topic-metadata">

**Author:** [@skgo](https://cwl.discourse.group/u/skgo)\
**Replies:** 1\
**Last updated:** [March 25, 2025, 8:06am UTC](https://cwl.discourse.group/t/scattering-doesnt-work/994 "2025-03-25T08:06:26Z")

</div>

When I try to run a small test pipeline using scattering I get the following error: INFO /usr/bin/cwltool 3.1.20250110105449 INFO Resolved 'scatter.cwl' to 'file:///home/ubuntu/scatter.cwl' ERROR I'm sorry, I couldn't l…

---

## [Input wrapped in double quotes getting wrapped in single quotes](https://cwl.discourse.group/t/input-wrapped-in-double-quotes-getting-wrapped-in-single-quotes/984)

<div class="topic-metadata">

**Author:** [@martijn](https://cwl.discourse.group/u/martijn)\
**Replies:** 4\
**Last updated:** [March 5, 2025, 12:49pm UTC](https://cwl.discourse.group/t/input-wrapped-in-double-quotes-getting-wrapped-in-single-quotes/984 "2025-03-05T12:49:47Z")

</div>

Hello, new CWL user here. I’m trying to implement a pattern matching flag of a tool, from their documentation: Use pattern matching (\*) to specify multiple input files. Enclose the pattern in double quotes. My issue ar…

---

## [Cwltool: resolve conda dependencies with local mirror](https://cwl.discourse.group/t/cwltool-resolve-conda-dependencies-with-local-mirror/982)

<div class="topic-metadata">

**Author:** [@Brilator](https://cwl.discourse.group/u/Brilator)\
**Replies:** 13\
**Last updated:** [February 27, 2025, 4:27pm UTC](https://cwl.discourse.group/t/cwltool-resolve-conda-dependencies-with-local-mirror/982 "2025-02-27T16:27:35Z")

</div>

Dear CWL community, we are looking for a way to run CWL workflows with conda dependencies on an HPC. The HPC has no internet access, but local mirrors of bioconda and conda-forge are available, aliases of which can be …

---

## [Extending RecordSchemas?](https://cwl.discourse.group/t/extending-recordschemas/981)

<div class="topic-metadata">

**Author:** [@alexiswl](https://cwl.discourse.group/u/alexiswl)\
**Replies:** 0\
**Last updated:** [February 18, 2025, 2:31am UTC](https://cwl.discourse.group/t/extending-recordschemas/981 "2025-02-18T02:31:18Z")

</div>

Is it possible to extend a record schema? For example, let’s say I have the base schema ‘contig’ which has the attributes - chromosome, start and end, that I have added to a file called contig\_basic.yaml. Let’s assume I…

---

## [Insert global parameters before a subcommand argument](https://cwl.discourse.group/t/insert-global-parameters-before-a-subcommand-argument/975)

<div class="topic-metadata">

**Author:** [@davidjsherman](https://cwl.discourse.group/u/davidjsherman)\
**Replies:** 3\
**Last updated:** [February 5, 2025, 8:58am UTC](https://cwl.discourse.group/t/insert-global-parameters-before-a-subcommand-argument/975 "2025-02-05T08:58:57Z")

</div>

Many programs require global parameters before any subcommand name, and reject them if they appear afterwards with the specific parameters. For example, git, or any Python program using Click for argument processing. The…

---

## [How to invoke GPU Docker usage](https://cwl.discourse.group/t/how-to-invoke-gpu-docker-usage/974)

<div class="topic-metadata">

**Author:** [@pennycuda](https://cwl.discourse.group/u/pennycuda)\
**Replies:** 1\
**Last updated:** [January 24, 2025, 8:13pm UTC](https://cwl.discourse.group/t/how-to-invoke-gpu-docker-usage/974 "2025-01-24T20:13:25Z")

</div>

Hello! I am a research programmer for HuBMAP Consortium. We currently have our own cwltool fork for CUDA usage in our workflows, but we would like to use the standard cwltool version if possible. Basically, I need cwltoo…

---

## [Validation does not catch missing inputs in conditional expression](https://cwl.discourse.group/t/validation-does-not-catch-missing-inputs-in-conditional-expression/971)

<div class="topic-metadata">

**Author:** [@lonbar](https://cwl.discourse.group/u/lonbar)\
**Replies:** 0\
**Last updated:** [January 22, 2025, 2:17pm UTC](https://cwl.discourse.group/t/validation-does-not-catch-missing-inputs-in-conditional-expression/971 "2025-01-22T14:17:28Z")

</div>

I recently noticed a mistake in one of my workflows. Whilst it was easily fixed, it made me wonder if cwltool’s validation correctly checks inputs in conditional expressions. Consider the following example: $ cat $PWD/…

---

## [Grouping outputs into separate directories](https://cwl.discourse.group/t/grouping-outputs-into-separate-directories/965)

<div class="topic-metadata">

**Author:** [@skgo](https://cwl.discourse.group/u/skgo)\
**Replies:** 0\
**Last updated:** [December 10, 2024, 7:44pm UTC](https://cwl.discourse.group/t/grouping-outputs-into-separate-directories/965 "2024-12-10T19:44:51Z")

</div>

Is there a straightforward way to group outputs from specific steps into different output directories? For example, say my workflow is something like trim → align → call variants → qc. I would like to group the results (…

---

## [Loading missing://](https://cwl.discourse.group/t/loading-missing/964)

<div class="topic-metadata">

**Author:** [@peterg1t](https://cwl.discourse.group/u/peterg1t)\
**Replies:** 2\
**Last updated:** [December 4, 2024, 8:42pm UTC](https://cwl.discourse.group/t/loading-missing/964 "2024-12-04T20:42:45Z")

</div>

I was revisiting a pipeline and this exception showed up. Got exception 'No available job store implementation can import the URL 'missing:'. Ensure Toil has been installed with the appropriate extras.' while copying 'm…

---

## [Use inline javascript when specifying input string](https://cwl.discourse.group/t/use-inline-javascript-when-specifying-input-string/963)

<div class="topic-metadata">

**Author:** [@skgo](https://cwl.discourse.group/u/skgo)\
**Replies:** 5\
**Last updated:** [December 3, 2024, 5:06pm UTC](https://cwl.discourse.group/t/use-inline-javascript-when-specifying-input-string/963 "2024-12-03T17:06:04Z")

</div>

Is it possible to use inline javascript in order to construct an input string in a workflow? Below is an example of my workflow: cwlVersion: v1.2 class: Workflow requirements: InlineJavascriptRequirement: {} inputs:…

[Next page](https://cwl.discourse.group/c/q-and-a/5.md?page=1)
