diff --git a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts index 04adb56ece..0c39191c94 100644 --- a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts +++ b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts @@ -174,7 +174,12 @@ const useOneStepRun = ({ } = useInspectVarsCrud() const runningStatus = data._singleRunningStatus || NodeRunningStatus.NotStart + const isPaused = !data._isSingleRun const setRunResult = useCallback(async (data: NodeRunResult | null) => { + // The backend don't support pause the single run, so the frontend handle the pause state. + if(isPaused) + return + const canRunLastRun = !isRunAfterSingleRun || runningStatus === NodeRunningStatus.Succeeded if(!canRunLastRun) { doSetRunResult(data) @@ -192,7 +197,7 @@ const useOneStepRun = ({ invalidateSysVarValues() invalidateConversationVarValues() // loop, iteration, variable assigner node can update the conversation variables, but to simple the logic(some nodes may also can update in the future), all nodes refresh. } - }, [isRunAfterSingleRun, runningStatus, appId, id, store, appendNodeInspectVars, invalidLastRun, isStartNode, invalidateSysVarValues, invalidateConversationVarValues]) + }, [isPaused, isRunAfterSingleRun, runningStatus, appId, id, store, appendNodeInspectVars, invalidLastRun, isStartNode, invalidateSysVarValues, invalidateConversationVarValues]) const { handleNodeDataUpdate }: { handleNodeDataUpdate: (data: any) => void } = useNodeDataUpdate() const [canShowSingleRun, setCanShowSingleRun] = useState(false)