Scatter parameter error?

I have the following top level workflow where one of the steps generates an array of integers (for frame numbers to be rendered), I have tried running the step individually and they seems fine but when I put them together in a workflow, I get an error.

Main workflow

class: Workflow
inputs:
- id: ttcamScript
  type: File
- id: inputAlembicMeshWF
  type: string
- id: alembicCameraWF
  type: string
- id: blendFileWF
  type: string
- id: blenderScriptWF
  type: File
- id: outputSequenceWF
  type: string
- id: renderedAnimationWF
  type: string
- id: startFrame
  type: int
- id: numFrames
  type: int
outputs: []
requirements:
- class: ScatterFeatureRequirement
- class: StepInputExpressionRequirement
steps:
- id: orbitCamera
  in:
  - id: blenderScript
    source: ttcamScript
  - id: inputAlembicMesh
    source: inputAlembicMeshWF
  - id: alembicCamera
    source: alembicCameraWF
  - id: start
    source: startFrame
  - id: frames
    source: numFrames
  out:
  - id: outputAlembicCamera
  - id: renderStart
  - id: renderEnd
  - id: renderStep
  run: create-orbiting-camera.cwl
- id: blenderScene
  in:
  - id: alembicCamera
    source: orbitCamera/outputAlembicCamera
  - id: alembicMesh
    source: inputAlembicMeshWF
  - id: blendFile
    source: blendFileWF
  - id: blenderScript
    source: blenderScriptWF
  out:
  - id: outputBlenderScene
  run: create-blend-file.cwl
- id: generateFrameRange
  in:
  - id: frameStart
    source: startFrame
  - id: frameCount
    source: numFrames
  out:
  - id: frameRange
  run: generate-simple-frame-range.cwl
- id: renderScene
  in:
  - id: frameNumber
    source: generateFrameRange/frameRange
  - id: blendFile
    source: blenderScene/outputBlenderScene
  - id: outputSequence
    source: outputSequenceWF
  out:
  - id: renderedSequence
  run: render-single-frame-blend-file.cwl
  scatter: frameNumber
- id: makeAnim
  in:
  - id: imageSequence
    source: renderScene/renderedSequence
  - id: renderedAnimation
    source: renderedAnimationWF
  out:
  - id: ffmpegAnimation
  run: create-animation-from-image-sequence.cwl
cwlVersion: v1.0

Error messages

INFO [job orbitCamera] completed success
INFO [step orbitCamera] completed success
INFO [workflow ] starting step generateFrameRange
INFO [step generateFrameRange] start
ERROR [step generateFrameRange] Output is missing expected field file:///data1/nyue/projects/workflow-languages_git/CWL/vfx/granular_steps/python/create-turntable.cwl#generateFrameRange/frameRange
WARNING [step generateFrameRange] completed permanentFail
INFO [workflow ] completed permanentFail
{}
WARNING Final process status is permanentFail

I have figured out the error, I can’t just return the array of int, I need to return a dictionary with the matching output name e.g. { “frameRange” : framIndicesArray }

2 Likes