ContextLab / ContextLab/orchestrator
create_parallel_queue reports success while silently skipping a step that did not render
- Dominant language
- Python
- Stars
- 3
- Forks
- 2
- Avg merge
- 13m
- Merged PRs (30d)
- 1
Description
Observed while probing loop bindings by execution.
Inside a `create_parallel_queue`, a step whose template references an unbound bare name does not write its file, and the pipeline still reports success:
```yaml
- id: loop
action: create_parallel_queue
create_parallel_queue:
"on": "['A']"
action_loop:
- action: filesystem
parameters:
action: write
path: "out/probe.txt"
content: "{{ nosuch_name }}"
```
The write is refused internally with `still contains unresolved template references`, no file appears, and the run's result reports success. Nothing surfaces to the caller.
The `$` spelling fails differently and just as quietly: `{{ $nosuch }}` is stripped to nothing and the **literal text is written to the file**, so the artifact exists and its contents are wrong.
Two more findings from the same probe, same construct:
1. **A template in `on:` breaks queue splitting.** `"on": "['x', '{{ 1 + 1 }}']"` yields a single queue item whose value is the list `['x', '2']`, rather than two items. Without a template it splits correctly.
2. **Inner actions cannot use `tool:`.** `tool: filesystem` inside the nested `action_loop` raises `Could not import tool filesystem: No module named 'orchestrator.tools.filesystem_tools'`; `action: filesystem` is required. So the step syntax inside this construct differs from the step syntax everywhere else, undocumented.
The silent-success case is the serious one: it is the failure mode the resilience work was meant to remove, and no test covers this construct. `examples/` contains no `create_parallel_queue` pipeline that validates, so nothing exercises it.
Contributor guide
Research direction
Start by reproducing the YAML pipeline in the issue and trace the create_parallel_queue entry point, since examples/ has no coverage for it. Verify that unresolved inner actions fail visibly, that $ references are not silently stripped, that templated on: values split correctly, and that the documented inner-action syntax is consistent. Add focused tests covering the reported behaviors and confirm failures reach the caller.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100