From 5459d812e7bb473ed4849aeee3ed2c8a26c8ea1d Mon Sep 17 00:00:00 2001 From: -LAN- Date: Mon, 21 Oct 2024 20:16:46 +0800 Subject: [PATCH] fix(iteration): handle empty iterator gracefully (#9565) --- api/core/workflow/nodes/iteration/iteration_node.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/api/core/workflow/nodes/iteration/iteration_node.py b/api/core/workflow/nodes/iteration/iteration_node.py index b28ae0a85c..7503c13ce8 100644 --- a/api/core/workflow/nodes/iteration/iteration_node.py +++ b/api/core/workflow/nodes/iteration/iteration_node.py @@ -46,6 +46,15 @@ class IterationNode(BaseNode[IterationNodeData]): if not iterator_list_segment: raise ValueError(f"Iterator variable {self.node_data.iterator_selector} not found") + if len(iterator_list_segment.value) == 0: + yield RunCompletedEvent( + run_result=NodeRunResult( + status=WorkflowNodeExecutionStatus.SUCCEEDED, + outputs={"output": []}, + ) + ) + return + iterator_list_value = iterator_list_segment.to_object() if not isinstance(iterator_list_value, list):