# Buggy code
def get_data_inputs(self):
    """Get configure time data input descriptions."""
    # Filter subworkflow steps and get inputs
    step_to_input_type = {
        "data_input": "dataset",
        "data_collection_input": "dataset_collection",
    }
    inputs = []
    if hasattr(self.subworkflow, "input_steps"):
        for step in self.subworkflow.input_steps:
            name = step.label
            if not name:
                step_module = module_factory.from_workflow_step(self.trans, step)
                name = step_module.get_name()
            step_type = step.type
            assert step_type in step_to_input_type
            input = dict(
                input_subworkflow_step_id=step.order_index,
                name=name,
                label=name,
                multiple=False,
                extensions="input",
                input_type=step_to_input_type[step_type],
            )
            inputs.append(input)
    return inputs


# Traceback (Exception)
Traceback (most recent call last):
File "/home/eteri/GalaxyProject/galaxy/lib/galaxy/workflow/run.py", line 82, in __invoke
outputs = invoker.invoke()
File "/home/eteri/GalaxyProject/galaxy/lib/galaxy/workflow/run.py", line 160, in invoke
jobs = self._invoke_step( step )
File "/home/eteri/GalaxyProject/galaxy/lib/galaxy/workflow/run.py", line 230, in _invoke_step
jobs = step.module.execute( self.trans, self.progress, self.workflow_invocation, step )
File "/home/eteri/GalaxyProject/galaxy/lib/galaxy/workflow/modules.py", line 435, in execute
subworkflow_invoker = progress.subworkflow_invoker( trans, step )
File "/home/eteri/GalaxyProject/galaxy/lib/galaxy/workflow/run.py", line 353, in subworkflow_invoker
subworkflow_progress = self.subworkflow_progress(step)
File "/home/eteri/GalaxyProject/galaxy/lib/galaxy/workflow/run.py", line 381, in subworkflow_progress
is_data=is_data,
File "/home/eteri/GalaxyProject/galaxy/lib/galaxy/workflow/run.py", line 305, in replacement_for_connection
raise Exception( message )
Exception: Workflow evaluation problem - failed to find output_name 1:out_file1 in step_outputs {None: <galaxy.model.HistoryDatasetAssociation object at 0x7f323f703890>}

# Fixed code
def get_data_inputs(self):
    """Get configure time data input descriptions."""
    # Filter subworkflow steps and get inputs
    step_to_input_type = {
        "data_input": "dataset",
        "data_collection_input": "dataset_collection",
    }
    inputs = []
    if hasattr(self.subworkflow, "input_steps"):
        for step in self.subworkflow.input_steps:
            name = step.label
            if not name:
                step_module = module_factory.from_workflow_step(self.trans, step)
                name = "%s:%s" % (step.order_index, step_module.get_name())
            step_type = step.type
            assert step_type in step_to_input_type
            input = dict(
                input_subworkflow_step_id=step.order_index,
                name=name,
                label=name,
                multiple=False,
                extensions="input",
                input_type=step_to_input_type[step_type],
            )
            inputs.append(input)
    return inputs