ConductorWorkflow requires a live executor at construction time — prevents offline use
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- python
- Domain
- backend-api-design
Research direction
Locate ConductorWorkflow.init(), then inspect register(), start_workflow(), and execute() along with the existing WorkflowExecutor handling. Reproduce construction without a server, then verify executor-dependent calls fail clearly without one while executor-backed use still works.
Written by the indexing model from the issue text.
Description
Summary
Tested against: Conductor OSS 3.32.0-rc.9
ConductorWorkflow.__init__() takes executor: WorkflowExecutor as a mandatory
first positional argument. This forces a live server connection at the point of
constructing a workflow definition, making offline use impossible.
Impact
- Unit testing: tests that validate workflow structure (task order, task types,
inputParameters) cannot be written without a running Conductor server. - Library code: functions that return workflow definitions must thread an
executorparameter through all their call chains, coupling definition logic
to connection management. - Code generation / serialization: workflow definitions cannot be built and
exported to JSON without a server connection.
Reproduction
# Fails without a server running:
wf = ConductorWorkflow(name="my_wf", version=1)
# TypeError: ConductorWorkflow.__init__() missing 1 required positional argument: 'executor'
# Required:
config = Configuration(server_api_url="http://localhost:8080/api")
executor = WorkflowExecutor(config)
wf = ConductorWorkflow(executor=executor, name="my_wf", version=1)
Suggested fix
Make executor optional; raise RuntimeError only when an executor-dependent
method (.register(), .start_workflow(), .execute()) is called on a workflow
with no executor set:
def __init__(self, name: str, version: Optional[int] = None,
executor: Optional[WorkflowExecutor] = None, ...):
self._executor = executor
...
def register(self, overwrite: bool):
if self._executor is None:
raise RuntimeError("ConductorWorkflow.register() requires an executor. "
"Pass executor= at construction time.")
...
Verified against
Conductor server 3.32.0-rc.9, Python SDK (editable install from
conductor-oss/python-sdk main branch).
- Dominant language
- Python
- Stars
- 104
- Forks
- 43
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 4
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from conductor-oss/python-sdk
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
conductor-oss/python-sdk#507 ·
-
Difficulty 1/5 1-3 hours Newbie friendliness 90/100
conductor-oss/python-sdk#502 ·
-
bug dependencies
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
conductor-oss/python-sdk#486 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
conductor-oss/python-sdk#483 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
conductor-oss/python-sdk#478 ·
All issues in conductor-oss/python-sdk
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
use-agent-os/agent-os#3314 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
BasedHardware/omi#15662 · 1 comment ·
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
AiursoftWeb/AnduinOS-2#19 ·