Relationships
#2736 A nested workflow that suspends on manual approval forwards its suspended event into the parent run's stream
Opened by hammz · 9/29/2026· Shipped 10/1/2026
Summary
WorkflowExecutionService.runWorkflowStep keeps the child's completed and cancelled events out of the parent's stream, but forwards the child's suspended event. Consumers treat suspended as the terminal event of the run they started. They include the serve detached run handler, ScheduledExecutionService (suspended flag and completedRun), the webhook runner and the CLI renderers. So a child that waits on a manual_approval gate looks like the parent run suspending, and it carries the child's run.
Context
Found while fixing swamp-club#2470. It needs a decision on what a parent should record while its nested child is suspended: suspend the parent as well, or fail the nested step.
Steps to reproduce
- Workflow child with a manual_approval step. Workflow parent with a workflow step running child.
- Run parent (through serve, or with --json).
- A suspended event for the child run appears in the parent's stream. Check the parent run's recorded status and what the consumer reports.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.