@<1531445337942659072:profile|OddCentipede48>  Looks like this is indeed not supported. What you could do is return the ID of the task that returns the models, then use  Task.get_task  and get the model from there. Here is an example:
from clearml import PipelineController
def step_one():
    from clearml import Task
    from clearml.binding.frameworks import WeightsFileHandler
    from clearml.model import Framework
    WeightsFileHandler.create_output_model(
        "obj", "filename", Framework.xgboost, Task.current_task(), singlefile=True, model_name="obj"
    )
def step_two(task_id):
    from clearml import Task
    task = Task.get_task(task_id)
    print(task.models.output["filename"].url)
if __name__ == "__main__":
    pipe = PipelineController(
        project="examples",
        name="Pipeline demo",
        version="1.1",
        add_pipeline_tags=False,
    )
    pipe.set_default_execution_queue("Eugene")
    pipe.add_function_step(
        name="step_one",
        function=step_one,
    )
    pipe.add_function_step(
        name="step_two",
        function=step_two,
        function_kwargs={"task_id": "${step_one.id}"}
    )
    pipe.start_locally(run_pipeline_steps_locally=True)