Update: July 26, 2019
This section of the forum is now closed; we are working on a new support model for WDL that we will share here shortly. For Cromwell-specific issues, see the Cromwell docs and post questions on Github.

YAML input file only accepted as first input file?

Hi, I realized that yaml is accepted as the first input file, but not for additional input files.
Lets take one yaml file called: 'mist.yaml' with the content:
```
mist.out: 'Hello world'
mist.out2: 'Hello world again'
```
I can run it as the primary input file in the workflow:
```
workflow mist{
String out
String out2
call print as p1{input: out=out}
call print as p2{input: out=out2}
}
task print{
String out
command{echo ${out}}
}
```
It works fine. However, if I split the input file into two files;

mist1.yaml
```
mist.out: 'Hello world'
```
and mist2.yaml:

```
mist.out2: 'Hello world again'
```

and run the same workflow with two input files, cromwell will fail to read the second file and throw an error:
```
{
"status": "fail",
"message": "Error(s): Failed to parse input: 'mist.out2: 'Hello world again'\n', which is not a valid json. Please check for syntactical errors. (reason 1 of 1): Unexpected character 'm' at input index 0 (line 1, position 1), expected JSON Value:\nmist.out2: 'Hello world again'\n^\n"
}
```
If I convert the second input file mist2.yaml to json format, things work fine.
If I leave workflowInputs empty an try to load the yaml data as workflowInputs_2, no error message is thrown during job submission; however, cromwell will not load the yaml file at all and I get errors due to missing data:
Workflow input processing failed:
Required workflow input 'mist.out' not specified
Required workflow input 'mist.out2' not specified

I am using cromwell 44

Is there anything that can be done about this behavior, other than going back to json?

Best,

Armin
Tagged:
Sign In or Register to comment.