Bug #19678
closedarvados-cwl-runner: id name must be a string
Description
arvados-cwl-runner errors if there is an id: name
that is not a string, when running a cwl file.
Minimal example (using a record to store a first and last name):
cwl file:
--- class: Workflow cwlVersion: v1.1 inputs: - type: fields: - name: first type: string - name: last type: string type: record id: name outputs: - type: fields: - name: first type: string - name: last type: string type: record id: processed_name outputSource: name steps: []
input.json:
{"name":{"first":"foo","last":"bar"}}
When running the above file with cwltool
, it produces the expected output:
{"processed_name": {"first": "foo", "last": "bar"}}
When running with arvados-cwl-runner --local minimal.cwl input.json
it produces the following error:
ERROR Input object failed validation: identifier field 'ordereddict([('first', 'foo'), ('last', 'bar')])' must be a string
The above failing workflow can be made to work by changing the inputs called name
to be called notname
instead, so it seems likely the bug may have something to do with treating name in a special way.
Related issues
Updated by Peter Amstutz almost 2 years ago
I think what is happening is that name
is a de facto reserved word (because CWL parameter definitions also have an identifier field called name
). It should handle it better (either not fail, or give a more useful error message), but as you have already discovered, the workaround is simply to call the parameter something else.
Updated by Peter Amstutz almost 2 years ago
- Related to Bug #19571: arvados-cwl-runner scattering bug added
Updated by Peter Amstutz almost 2 years ago
- Related to deleted (Bug #19571: arvados-cwl-runner scattering bug)
Updated by Peter Amstutz almost 2 years ago
- Is duplicate of Bug #19571: arvados-cwl-runner scattering bug added
Updated by Peter Amstutz almost 2 years ago
- Target version set to 2022-11-09 sprint
- Assigned To set to Peter Amstutz
Updated by Peter Amstutz almost 2 years ago
- Related to Bug #19599: ContextualVersionConflict 'importlib-metadata<5,>=0.23; python_version == "3.7"'), {'argcomplete'}) added