Separate create draft cases op (#18613)

Bug: When creating a draft from an activated workflow version, the draft
row was inserted into the database without steps and trigger, then
updated with them in a separate operation. The SSE create-one event
fired on the INSERT, causing the frontend to refetch the draft before
the UPDATE — resulting in steps: null and trigger: null, which crashed
the step editor.

Fix: Reorder the operations so steps are duplicated first, then either
insert a new draft or update an existing one with steps and trigger
already populated. The row never exists in the database without complete
data.
This commit is contained in:
Thomas Trompette
2026-03-13 11:43:20 +01:00
committed by GitHub
parent 349bfc8462
commit dfd28f5b4a
2 changed files with 48 additions and 40 deletions
@@ -1,4 +1,3 @@
import { CoreObjectNameSingular, AppPath } from 'twenty-shared/types';
import {
ConfirmationModal,
StyledCenteredButton,
@@ -7,6 +6,7 @@ import { useModal } from '@/ui/layout/modal/hooks/useModal';
import { OVERRIDE_WORKFLOW_DRAFT_CONFIRMATION_MODAL_ID } from '@/workflow/constants/OverrideWorkflowDraftConfirmationModalId';
import { useCreateDraftFromWorkflowVersion } from '@/workflow/hooks/useCreateDraftFromWorkflowVersion';
import { useLingui } from '@lingui/react/macro';
import { AppPath, CoreObjectNameSingular } from 'twenty-shared/types';
import { getAppPath } from 'twenty-shared/utils';
import { useNavigateApp } from '~/hooks/useNavigateApp';
@@ -58,6 +58,7 @@ export const OverrideWorkflowDraftConfirmationModal = ({
variant="secondary"
title={t`Go to Draft`}
fullWidth
justify="center"
/>
}
/>