From ac2f0e8d986d715e1e3d1ed9c371e0b5e71085da Mon Sep 17 00:00:00 2001 From: GogoVega <92022724+GogoVega@users.noreply.github.com> Date: Mon, 27 Oct 2025 16:55:20 +0100 Subject: [PATCH] Ensure retained status is keep to restore ephemeral status --- packages/node_modules/@node-red/runtime/lib/api/comms.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/runtime/lib/api/comms.js b/packages/node_modules/@node-red/runtime/lib/api/comms.js index 8b673f043..9fa749094 100644 --- a/packages/node_modules/@node-red/runtime/lib/api/comms.js +++ b/packages/node_modules/@node-red/runtime/lib/api/comms.js @@ -56,9 +56,14 @@ function handleStatusEvent(event) { let retain = true; if (event.status.ephemeral === true) { retain = false; - status._retainedStatus = retained["status/" + event.id] || {}; + status._retainedStatus = retained["status/" + event.id]; } publish("status/" + event.id, status, retain); + if (status._retainedStatus) { + // publish will delete the retained status if retain is false + // Need to keep this status to restore ephemeral statuses + retained["status/" + event.id] = status._retainedStatus; + } } } function handleRuntimeEvent(event) {