@ -156,7 +156,7 @@ class IterationNode(BaseNode[IterationNodeData]):
index = 0 ,
pre_iteration_output = None ,
)
outputs : list [ Any ] = [ ]
outputs : list [ Any ] = [ None ] * len ( iterator_list_value )
try :
if self . node_data . is_parallel :
futures : list [ Future ] = [ ]
@ -214,6 +214,8 @@ class IterationNode(BaseNode[IterationNodeData]):
graph_engine ,
iteration_graph ,
)
if self . node_data . error_handle_mode == ErrorHandleMode . REMOVE_ABNORMAL_OUTPUT :
outputs = [ output for output in outputs if output is not None ]
yield IterationRunSucceededEvent (
iteration_id = self . id ,
iteration_node_id = self . node_id ,
@ -425,7 +427,7 @@ class IterationNode(BaseNode[IterationNodeData]):
yield NodeInIterationFailedEvent (
* * metadata_event . model_dump ( ) ,
)
outputs . insert ( current_index , None )
outputs [ current_index ] = None
variable_pool . add ( [ self . node_id , " index " ] , next_index )
if next_index < len ( iterator_list_value ) :
variable_pool . add ( [ self . node_id , " item " ] , iterator_list_value [ next_index ] )
@ -473,7 +475,7 @@ class IterationNode(BaseNode[IterationNodeData]):
yield metadata_event
current_iteration_output = variable_pool . get ( self . node_data . output_selector ) . value
outputs . insert ( current_index , current_iteration_output )
outputs [ current_index ] = current_iteration_output
# remove all nodes outputs from variable pool
for node_id in iteration_graph . node_ids :
variable_pool . remove ( [ node_id ] )