diff --git a/apps/sim/lib/workflows/persistence/duplicate.ts b/apps/sim/lib/workflows/persistence/duplicate.ts index d73df91cc..8e006e076 100644 --- a/apps/sim/lib/workflows/persistence/duplicate.ts +++ b/apps/sim/lib/workflows/persistence/duplicate.ts @@ -189,6 +189,7 @@ export async function duplicateWorkflow( parentId: newParentId, extent: newExtent, data: updatedData, + locked: false, // Duplicated blocks should always be unlocked createdAt: now, updatedAt: now, } diff --git a/apps/sim/lib/workflows/persistence/utils.ts b/apps/sim/lib/workflows/persistence/utils.ts index fc990682a..b747177e3 100644 --- a/apps/sim/lib/workflows/persistence/utils.ts +++ b/apps/sim/lib/workflows/persistence/utils.ts @@ -629,7 +629,8 @@ export function regenerateWorkflowStateIds(state: RegenerateStateInput): Regener // Regenerate blocks with updated references Object.entries(state.blocks || {}).forEach(([oldId, block]) => { const newId = blockIdMapping.get(oldId)! - const newBlock: BlockState = { ...block, id: newId } + // Duplicated blocks are always unlocked so users can edit them + const newBlock: BlockState = { ...block, id: newId, locked: false } // Update parentId reference if it exists if (newBlock.data?.parentId) {