START_WORKFLOW task: missing builder class

Open Beginner friendly
#131 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
85/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Quiet
Tech stack
java
Domain
api

Research direction

Start by comparing existing builders in conductor-client/…/def/tasks/ and reading the Task and WorkflowTask APIs. Add StartWorkflow.java with the fluent behavior shown in the issue, then verify the documented example produces inputParameters.startWorkflow and run the SDK’s existing tests.

Written by the indexing model from the issue text.

Description

bug

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.

Dominant language
Java
Stars
12
Forks
10
Avg merge
2d 8h
Merged PRs (30d)
4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from conductor-oss/java-sdk

All issues in conductor-oss/java-sdk

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.