Skip to content

conductor workflow start --sync is broken on OSS: calls Orkes-only /workflow/execute endpoint #52

@nthmost-orkes

Description

@nthmost-orkes

Problem

`conductor workflow start --sync` silently fails on OSS Conductor with a 404.

The CLI implements `--sync` by calling `POST /workflow/execute/{name}/{version}` (via the Go SDK's `ExecuteWorkflow`). This endpoint does not exist in OSS Conductor — it is an Orkes Conductor-only API.

On an OSS server the call returns a 404, which the CLI surfaces as a generic API error rather than a helpful message.

Expected behavior

`--sync` should work on OSS Conductor. It should:

  1. Start the workflow asynchronously (via `POST /api/workflow/{name}`)
  2. Poll `GET /api/workflow/{id}` until the workflow reaches a terminal state (COMPLETED, FAILED, TERMINATED, TIMED_OUT)
  3. Print the workflow output

Fix

Implement polling fallback in `conductor-oss/conductor-cli`:

  • Try `ExecuteWorkflow` (Orkes path) first
  • On 404, fall back to start-async + poll loop
  • Or: always use the poll approach for OSS compatibility

The Go SDK's `WorkflowExecutor.MonitorExecution` provides a channel-based polling primitive that could be used here.

Affects

  • `conductor-oss/conductor-cli` cmd/workflow.go `startWorkflow`

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: cliconductor-cli binary or templatesbugSomething isn't workingcriticalSeriously impacts zero-to-one onboardingfix: codeFix requires a code change in a repo

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions