Skip to content

START_WORKFLOW task: missing builder class #131

Description

@nthmost-orkes

Summary

TaskType.START_WORKFLOW exists in the SDK enum but there is no StartWorkflow
builder class in conductor-client/…/def/tasks/. A file named StartWorkflow.java
exists only in examples/old/ and is an example runner, not a task builder.

Users cannot create a START_WORKFLOW task using the fluent SDK API.

Server baseline

Conductor 3.32.0-rc.9

Evidence

Static: No StartWorkflow builder class under conductor-client/…/def/tasks/.

Live (2026-07-16): A raw WorkflowTask with "type": "START_WORKFLOW" and
inputParameters.startWorkflow = { "name": "…", "version": 1, "input": {} } was
registered and executed against Conductor OSS 3.32.0-rc.9. The workflow completed
successfully — gap is SDK-only.

Expected behaviour

new StartWorkflow("fire_child", "child_workflow_name")
    .version(1)
    .workflowInput(Map.of("key", "value"))

Proposed fix

public class StartWorkflow extends Task<StartWorkflow> {
    private final String workflowName;
    private Integer version;
    private Map<String, Object> workflowInput = new HashMap<>();

    public StartWorkflow(String taskReferenceName, String workflowName) {
        super(taskReferenceName, TaskType.START_WORKFLOW);
        this.workflowName = workflowName;
    }

    public StartWorkflow version(int version) {
        this.version = version;
        return this;
    }

    public StartWorkflow workflowInput(Map<String, Object> input) {
        this.workflowInput = input;
        return this;
    }

    @Override
    protected void updateWorkflowTask(WorkflowTask task) {
        Map<String, Object> startWorkflow = new HashMap<>();
        startWorkflow.put("name", workflowName);
        if (version != null) startWorkflow.put("version", version);
        startWorkflow.put("input", workflowInput);
        task.getInputParameters().put("startWorkflow", startWorkflow);
    }
}

Related

Discovered during systematic SDK audit against Conductor OSS 3.32.0-rc.9.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions