diff --git a/api/core/workflow/nodes/iteration/iteration_node.py b/api/core/workflow/nodes/iteration/iteration_node.py index e1d2b8836016b8..e5863d771b0431 100644 --- a/api/core/workflow/nodes/iteration/iteration_node.py +++ b/api/core/workflow/nodes/iteration/iteration_node.py @@ -156,7 +156,7 @@ def _run(self) -> Generator[NodeEvent | InNodeEvent, None, None]: 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 @@ def _run(self) -> Generator[NodeEvent | InNodeEvent, None, None]: 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 @@ def _run_single_iter( 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 @@ def _run_single_iter( 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]) diff --git a/web/i18n/en-US/workflow.ts b/web/i18n/en-US/workflow.ts index 1c6639aba01ed2..3c6ccd0a6707e8 100644 --- a/web/i18n/en-US/workflow.ts +++ b/web/i18n/en-US/workflow.ts @@ -569,8 +569,8 @@ const translation = { errorResponseMethod: 'Error response method', ErrorMethod: { operationTerminated: 'terminated', - continueOnError: 'continue-on-error', - removeAbnormalOutput: 'remove-abnormal-output', + continueOnError: 'continue on error', + removeAbnormalOutput: 'remove abnormal output', }, answerNodeWarningDesc: 'Parallel mode warning: Answer nodes, conversation variable assignments, and persistent read/write operations within iterations may cause exceptions.', },