From 0c5b3097bb441b5f5a6244e5f32bb4709fd53ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Thu, 9 Jan 2025 11:51:07 +0100 Subject: [PATCH] refactor(core): Report malformed execution data (#12525) --- packages/core/src/WorkflowExecute.ts | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/core/src/WorkflowExecute.ts b/packages/core/src/WorkflowExecute.ts index 515f58a657..ef84ef27c6 100644 --- a/packages/core/src/WorkflowExecute.ts +++ b/packages/core/src/WorkflowExecute.ts @@ -899,7 +899,27 @@ export class WorkflowExecute { this.status = 'running'; - const startNode = this.runExecutionData.executionData!.nodeExecutionStack[0].node.name; + if (!this.runExecutionData.executionData) { + throw new ApplicationError('Failed to run workflow due to missing execution data', { + extra: { + workflowId: workflow.id, + executionid: this.additionalData.executionId, + mode: this.mode, + }, + }); + } + + const startNode = this.runExecutionData.executionData.nodeExecutionStack.at(0)?.node.name; + + if (!startNode) { + throw new ApplicationError('Failed to run workflow due to empty node execution stack', { + extra: { + workflowId: workflow.id, + executionId: this.additionalData.executionId, + mode: this.mode, + }, + }); + } let destinationNode: string | undefined; if (this.runExecutionData.startData && this.runExecutionData.startData.destinationNode) { @@ -934,7 +954,7 @@ export class WorkflowExecute { if (this.runExecutionData.waitTill) { const lastNodeExecuted = this.runExecutionData.resultData.lastNodeExecuted as string; - this.runExecutionData.executionData!.nodeExecutionStack[0].node.disabled = true; + this.runExecutionData.executionData.nodeExecutionStack[0].node.disabled = true; this.runExecutionData.waitTill = undefined; this.runExecutionData.resultData.runData[lastNodeExecuted].pop(); }