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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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