From 05727466089c154a78612d1f99e6052a9a1057ec Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Tue, 16 Dec 2025 01:29:57 +0800 Subject: [PATCH] fix bug SKY-7319 - when the conditional block doesn't have any block inside, the workflow fails the DAG check (#4300) --- skyvern/forge/sdk/workflow/service.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/skyvern/forge/sdk/workflow/service.py b/skyvern/forge/sdk/workflow/service.py index c2b865b0..2319d968 100644 --- a/skyvern/forge/sdk/workflow/service.py +++ b/skyvern/forge/sdk/workflow/service.py @@ -1349,8 +1349,11 @@ class WorkflowService: return if target not in label_to_block: raise InvalidWorkflowDefinition(f"Block {source} references unknown next_block_label {target}") - adjacency[source].add(target) - incoming[target] += 1 + # Only increment incoming count if this is a new edge + # (multiple branches of a conditional block may point to the same target) + if target not in adjacency[source]: + adjacency[source].add(target) + incoming[target] += 1 for label, block in label_to_block.items(): if isinstance(block, ConditionalBlock):