#1668·clearml

PipelineController parameters always default to string

Author: HJJ256Created Jul 20, 2026Updated Jul 20, 2026
Labelsbug

Describe the bug

When creating a pipeline using PipelineController, the pipeline parameters are always read as raw strings, even if param_type has been provided in add_parameter.

According to https://clear.ml/docs/latest/docs/references/sdk/automation_controller_pipelinecontroller param_type (Optional[str]) – Optional, parameter type information (to be used as hint for casting and description)

My assumption was the setting param_type would cast the parameter into respective data type.

To reproduce

Try this

python
from clearml.automation.controller import PipelineController

def add_two(x: int):
    return x+2
pipe = PipelineController(name="test", project="test_project")
pipe.add_parameter(
    "x",
    120,
    param_type="int",
    description="HTTP timeout for signature API calls",
)
pipe.add_function_step(
    name="add_two",
    function=add_two,
    function_kwargs={"x": "${pipeline.x}"}
)

if __name__ == "__main__":
    pipe.start_locally(run_pipeline_steps_locally=True)

Expected behaviour

The parameter x should have been automatically type-casted to an int and pipeline run should have been successful.

Environment

  • Server type (self hosted \ app.clear.ml) - Self Hosted
  • ClearML SDK Version - 2.1.10
  • ClearML Server Version (Only for self hosted). Can be found on the bottom right corner of the settings screen. - 2.2.0-690
  • Python Version - 3.10.18
  • OS (Windows \ Linux \ Macos) - Linux

Related Discussion

If this continues a slack thread, please provide a link to the original slack thread.