From 1bd3000b5d2386b20f9ec195e4b5e08146102250 Mon Sep 17 00:00:00 2001 From: martmull Date: Tue, 18 Mar 2025 14:24:21 +0100 Subject: [PATCH] Investigate workflow user error (#10952) Investigation related to https://github.com/twentyhq/twenty/issues/10868 - throw an error when computedVersion is undefined --- .../serverless/drivers/lambda.driver.ts | 5 +---- .../serverless/drivers/local.driver.ts | 5 +---- .../utils/serverless-get-folder.utils.ts | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/twenty-server/src/engine/core-modules/serverless/drivers/lambda.driver.ts b/packages/twenty-server/src/engine/core-modules/serverless/drivers/lambda.driver.ts index 64987a5f4..3ae96fe44 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/drivers/lambda.driver.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/drivers/lambda.driver.ts @@ -288,12 +288,9 @@ export class LambdaDriver implements ServerlessDriver { const startTime = Date.now(); - const computedVersion = - version === 'latest' ? serverlessFunction.latestVersion : version; - const folderPath = getServerlessFolder({ serverlessFunction, - version: computedVersion, + version, }); const tsCodeStream = await this.fileStorageService.read({ diff --git a/packages/twenty-server/src/engine/core-modules/serverless/drivers/local.driver.ts b/packages/twenty-server/src/engine/core-modules/serverless/drivers/local.driver.ts index c5621c1f7..d3b470948 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/drivers/local.driver.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/drivers/local.driver.ts @@ -82,12 +82,9 @@ export class LocalDriver implements ServerlessDriver { const startTime = Date.now(); - const computedVersion = - version === 'latest' ? serverlessFunction.latestVersion : version; - const folderPath = getServerlessFolder({ serverlessFunction, - version: computedVersion, + version, }); const tsCodeStream = await this.fileStorageService.read({ diff --git a/packages/twenty-server/src/engine/core-modules/serverless/utils/serverless-get-folder.utils.ts b/packages/twenty-server/src/engine/core-modules/serverless/utils/serverless-get-folder.utils.ts index 01f24af83..661ceda2b 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/utils/serverless-get-folder.utils.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/utils/serverless-get-folder.utils.ts @@ -1,8 +1,14 @@ import { join } from 'path'; +import { isDefined } from 'twenty-shared'; + import { FileFolder } from 'src/engine/core-modules/file/interfaces/file-folder.interface'; import { ServerlessFunctionEntity } from 'src/engine/metadata-modules/serverless-function/serverless-function.entity'; +import { + ServerlessFunctionException, + ServerlessFunctionExceptionCode, +} from 'src/engine/metadata-modules/serverless-function/serverless-function.exception'; export const getServerlessFolder = ({ serverlessFunction, @@ -14,10 +20,17 @@ export const getServerlessFolder = ({ const computedVersion = version === 'latest' ? serverlessFunction.latestVersion : version; + if (!isDefined(computedVersion)) { + throw new ServerlessFunctionException( + 'Cannot compute serverless folder for undefined version', + ServerlessFunctionExceptionCode.SERVERLESS_FUNCTION_VERSION_NOT_FOUND, + ); + } + return join( 'workspace-' + serverlessFunction.workspaceId, FileFolder.ServerlessFunction, serverlessFunction.id, - computedVersion || '', + computedVersion, ); };