From 4e1cc2d83151f5118b429529b813d1055adc1483 Mon Sep 17 00:00:00 2001 From: Thomas Trompette Date: Thu, 4 Jun 2026 18:42:05 +0200 Subject: [PATCH] fix: prevent workflow from disappearing after activation (#21231) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Fixes a regression from #21176 where activating a workflow caused it to disappear until page refresh - Root cause: when a draft is activated (status DRAFT→ACTIVE), `useEffectiveDraftVersionId` incorrectly treated it as a discard because the cached version was no longer DRAFT, filtering it from the versions list - Fix: only set `lastDiscardedDraftId` when `deletedAt` is actually set on the cached version, not when the status simply changes ## Test plan - [x] Open a workflow with a DRAFT version - [x] Activate the workflow → verify it does NOT disappear - [x] Discard a draft → verify header does NOT flicker between DRAFT/ACTIVE --- .../modules/workflow/hooks/useEffectiveDraftVersionId.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/twenty-front/src/modules/workflow/hooks/useEffectiveDraftVersionId.ts b/packages/twenty-front/src/modules/workflow/hooks/useEffectiveDraftVersionId.ts index 689ea2aeed..03bbd895bb 100644 --- a/packages/twenty-front/src/modules/workflow/hooks/useEffectiveDraftVersionId.ts +++ b/packages/twenty-front/src/modules/workflow/hooks/useEffectiveDraftVersionId.ts @@ -63,7 +63,13 @@ export const useEffectiveDraftVersionId = ( return { effectiveDraftId: previouslyKnownDraftId, lastDiscardedDraftId }; } - setLastDiscardedDraftId(previouslyKnownDraftId); + const wasDiscarded = + isDefined(cachedDraft) && isDefined(cachedDraft.deletedAt); + + if (wasDiscarded) { + setLastDiscardedDraftId(previouslyKnownDraftId); + } + setPreviouslyKnownDraftId(undefined); return { effectiveDraftId: undefined, lastDiscardedDraftId };