diff --git a/packages/twenty-server/src/modules/workflow/common/workspace-services/workflow-common.workspace-service.ts b/packages/twenty-server/src/modules/workflow/common/workspace-services/workflow-common.workspace-service.ts index c94da4e6a0..f46926f2a6 100644 --- a/packages/twenty-server/src/modules/workflow/common/workspace-services/workflow-common.workspace-service.ts +++ b/packages/twenty-server/src/modules/workflow/common/workspace-services/workflow-common.workspace-service.ts @@ -10,6 +10,10 @@ import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object import { buildObjectIdByNameMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/build-object-id-by-name-maps.util'; import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.service'; import { LogicFunctionFromSourceService } from 'src/engine/metadata-modules/logic-function/services/logic-function-from-source.service'; +import { + LogicFunctionException, + LogicFunctionExceptionCode, +} from 'src/engine/metadata-modules/logic-function/logic-function.exception'; import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager'; import { type WorkspaceRepository } from 'src/engine/twenty-orm/repository/workspace.repository'; import { buildSystemAuthContext } from 'src/engine/twenty-orm/utils/build-system-auth-context.util'; @@ -387,10 +391,22 @@ export class WorkflowCommonWorkspaceService { continue; } - await this.logicFunctionFromSourceService.deleteOneWithSource({ - id: logicFunctionId, - workspaceId, - }); + await this.logicFunctionFromSourceService + .deleteOneWithSource({ + id: logicFunctionId, + workspaceId, + }) + .catch((error) => { + if ( + error instanceof LogicFunctionException && + error.code === + LogicFunctionExceptionCode.LOGIC_FUNCTION_NOT_FOUND + ) { + return; + } + + throw error; + }); } } } diff --git a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/__tests__/workflow-version-step-operations.workspace-service.spec.ts b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/__tests__/workflow-version-step-operations.workspace-service.spec.ts index b1e61e0863..893399c885 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/__tests__/workflow-version-step-operations.workspace-service.spec.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/__tests__/workflow-version-step-operations.workspace-service.spec.ts @@ -91,7 +91,7 @@ describe('WorkflowVersionStepOperationsWorkspaceService', () => { } as unknown as jest.Mocked; logicFunctionFromSourceService = { - deleteOneWithSource: jest.fn(), + deleteOneWithSource: jest.fn().mockResolvedValue(undefined), } as unknown as jest.Mocked; agentService = { diff --git a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/workflow-version-step-operations.workspace-service.ts b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/workflow-version-step-operations.workspace-service.ts index 38b0c13f11..2395857bca 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/workflow-version-step-operations.workspace-service.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/workflow-version-step-operations.workspace-service.ts @@ -22,6 +22,10 @@ import { AiAgentRoleService } from 'src/engine/metadata-modules/ai/ai-agent-role import { AgentService } from 'src/engine/metadata-modules/ai/ai-agent/agent.service'; import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.service'; import { LogicFunctionFromSourceService } from 'src/engine/metadata-modules/logic-function/services/logic-function-from-source.service'; +import { + LogicFunctionException, + LogicFunctionExceptionCode, +} from 'src/engine/metadata-modules/logic-function/logic-function.exception'; import { findFlatLogicFunctionOrThrow } from 'src/engine/metadata-modules/logic-function/utils/find-flat-logic-function-or-throw.util'; import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity'; import { RoleTargetEntity } from 'src/engine/metadata-modules/role-target/role-target.entity'; @@ -95,10 +99,21 @@ export class WorkflowVersionStepOperationsWorkspaceService { break; } - await this.logicFunctionFromSourceService.deleteOneWithSource({ - id: step.settings.input.logicFunctionId, - workspaceId, - }); + await this.logicFunctionFromSourceService + .deleteOneWithSource({ + id: step.settings.input.logicFunctionId, + workspaceId, + }) + .catch((error) => { + if ( + error instanceof LogicFunctionException && + error.code === LogicFunctionExceptionCode.LOGIC_FUNCTION_NOT_FOUND + ) { + return; + } + + throw error; + }); break; } case WorkflowActionType.AI_AGENT: {