From 97e70a225b3dca43d73897c58b3dce9e6db66db3 Mon Sep 17 00:00:00 2001 From: Dennis-SEG Date: Sat, 24 Jan 2026 23:20:52 +0100 Subject: [PATCH] fix: prevent double resolve in node close callback --- .../node_modules/@node-red/runtime/lib/nodes/Node.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/node_modules/@node-red/runtime/lib/nodes/Node.js b/packages/node_modules/@node-red/runtime/lib/nodes/Node.js index 0b1ed349b..f31504214 100644 --- a/packages/node_modules/@node-red/runtime/lib/nodes/Node.js +++ b/packages/node_modules/@node-red/runtime/lib/nodes/Node.js @@ -322,6 +322,7 @@ Node.prototype.close = function(removed) { // The callback takes a 'done' callback and (maybe) the removed flag promises.push( new Promise((resolve) => { + var resolved = false; try { var args = []; if (callback.length === 2) { @@ -329,13 +330,19 @@ Node.prototype.close = function(removed) { args.push(!!removed); } args.push(() => { - resolve(); + if (!resolved) { + resolved = true; + resolve(); + } }); callback.apply(node, args); } catch(err) { // TODO: error thrown in node async close callback // We've never logged this properly. - resolve(); + if (!resolved) { + resolved = true; + resolve(); + } } }) );