From 4db7ea16d2a7322f0e80bd3c4a68e9b2e8a9105b Mon Sep 17 00:00:00 2001 From: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com> Date: Fri, 30 May 2025 13:09:41 -0300 Subject: [PATCH] fix: add error handling when node stops existing before update completes (#8291) Added error handling when node is not existent --- .../src/CustomNodes/helpers/mutate-template.ts | 10 +++++++++- src/frontend/src/stores/flowStore.ts | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/CustomNodes/helpers/mutate-template.ts b/src/frontend/src/CustomNodes/helpers/mutate-template.ts index 5fdfd3caa..9d5942e02 100644 --- a/src/frontend/src/CustomNodes/helpers/mutate-template.ts +++ b/src/frontend/src/CustomNodes/helpers/mutate-template.ts @@ -60,7 +60,15 @@ export const mutateTemplate = async ( ); newNode.tool_mode = toolMode ?? node.tool_mode; } - setNodeClass(newNode); + try { + setNodeClass(newNode); + } catch (e) { + if (e instanceof Error && e.message === "Node not found") { + console.log("Node not found"); + } else { + throw e; + } + } callback?.(); } catch (e) { const error = e as ResponseErrorDetailAPI; diff --git a/src/frontend/src/stores/flowStore.ts b/src/frontend/src/stores/flowStore.ts index 23234e770..fb7d75334 100644 --- a/src/frontend/src/stores/flowStore.ts +++ b/src/frontend/src/stores/flowStore.ts @@ -304,6 +304,10 @@ const useFlowStore = create((set, get) => ({ isUserChange: boolean = true, callback?: () => void, ) => { + if (!get().nodes.find((node) => node.id === id)) { + throw new Error("Node not found"); + } + let newChange = typeof change === "function" ? change(get().nodes.find((node) => node.id === id)!)