From 7e629fd783bda2d8526268b17d6e196fd31864d6 Mon Sep 17 00:00:00 2001 From: -LAN- Date: Sun, 7 Sep 2025 21:31:41 +0800 Subject: [PATCH] fix: update iteration node to use correct variable segment types (#25315) --- api/core/workflow/nodes/iteration/iteration_node.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/core/workflow/nodes/iteration/iteration_node.py b/api/core/workflow/nodes/iteration/iteration_node.py index 9037677df9..52eb7fdd75 100644 --- a/api/core/workflow/nodes/iteration/iteration_node.py +++ b/api/core/workflow/nodes/iteration/iteration_node.py @@ -11,7 +11,7 @@ from typing import TYPE_CHECKING, Any, Optional, cast from flask import Flask, current_app from configs import dify_config -from core.variables import ArrayVariable, IntegerVariable, NoneVariable +from core.variables import IntegerVariable, NoneSegment from core.variables.segments import ArrayAnySegment, ArraySegment from core.workflow.entities.node_entities import ( NodeRunResult, @@ -112,10 +112,10 @@ class IterationNode(BaseNode): if not variable: raise IteratorVariableNotFoundError(f"iterator variable {self._node_data.iterator_selector} not found") - if not isinstance(variable, ArrayVariable) and not isinstance(variable, NoneVariable): + if not isinstance(variable, ArraySegment) and not isinstance(variable, NoneSegment): raise InvalidIteratorValueError(f"invalid iterator value: {variable}, please provide a list.") - if isinstance(variable, NoneVariable) or len(variable.value) == 0: + if isinstance(variable, NoneSegment) or len(variable.value) == 0: # Try our best to preserve the type informat. if isinstance(variable, ArraySegment): output = variable.model_copy(update={"value": []})