We've moved!
For WDL questions, see the WDL specification and WDL docs.
For Cromwell questions, see the Cromwell docs and please post any issues 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.