Getting Started With WDL

Besides CWL, you can also describe tools via the WDL language. WDL does not directly have the concept of a Tool built in to the language like CWL. Instead, we define a tool as a one task WDL workflow, where the task has an associated Docker image.

This is a companion discussion topic for the original entry at

When posting my WDL to dockstore i get the following message in the Description section of dock store
There is a syntax error, please check the WDL file.

The wdl file has been tested and it works fine, I wonder if its related to the script being written in the latest version of WDL which is 1.0. Is dockstore able to recognize the change in syntax for WDL 1.0?

Link to workflow :
Link to different versions of WDL :

Ah sorry, totally missed this.
I think I’ll open an issue for GitHub for an investigation.
In the meantime, could it be possible that this is related to this PR?

What’s the link to the PR you mentioned it might be related to?

Ah sorry, the PR was and we noticed a few issues with descriptions that were on multiple lines.

It helps make sense of things a little. Seems like dockstore is using a meta block within a task block to fill out the description in dockstore. Its odd that I get “There is a syntax error, please check the WDL file.” message when the wdl doesn’t have any meta block in the whole workflow. Maybe a meta block is expected for all wdls and if doesn’t have one the above message pops up.


Ok, so we’re currently using wdl4s to parse and it does not appear to support v1.0. We’ve created an issue to provide v1.0 support.

1 Like

Hi. I am starting to register ENCODE uniform processing pipelines into dockstore. Our pipelines have been written in WDL 1.0. For various reasons we prefer to not hardcode the docker images in our task definitions. According to this tutorial it looks like this would be your preferred way.
I would need some help in finding a more flexible way to define the docker images in dockstore.
Otto Jolanki
software developer


I think what we would say is that while we generally recommend that Docker images are not parameterized (in documents such as Best Practices for Secure and FAIR Workflows — Dockstore documentation ) this isn’t a hard requirement to get registered on Dockstore. This is more of a recommendation to make it easier for others to reproduce your work.

If you go down the parameterized Docker image route, we encourage that you also include test parameter files that include the names+versions of the needed Docker images.