From 9a1757535c1dfbcd368f6f23af96567498c3aa94 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Fri, 30 May 2025 11:31:02 +0100 Subject: [PATCH] =?UTF-8?q?If=20the=20run=20is=20already=20PENDING=5FEXECU?= =?UTF-8?q?TING,=20log=20an=20error=20and=20ack=20but=20don=E2=80=99t=20fa?= =?UTF-8?q?il=20the=20run?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../run-engine/src/engine/systems/dequeueSystem.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/internal-packages/run-engine/src/engine/systems/dequeueSystem.ts b/internal-packages/run-engine/src/engine/systems/dequeueSystem.ts index d02ac75f97..3f49f7d982 100644 --- a/internal-packages/run-engine/src/engine/systems/dequeueSystem.ts +++ b/internal-packages/run-engine/src/engine/systems/dequeueSystem.ts @@ -99,6 +99,20 @@ export class DequeueSystem { const snapshot = await getLatestExecutionSnapshot(prisma, runId); if (!isDequeueableExecutionStatus(snapshot.executionStatus)) { + // If it's pending executing it will be picked up by the stalled system if there's an issue + if (snapshot.executionStatus === "PENDING_EXECUTING") { + this.$.logger.error( + "RunEngine.dequeueFromMasterQueue(): Run is already PENDING_EXECUTING, removing from queue", + { + runId, + orgId, + } + ); + // remove the run from the queue + await this.$.runQueue.acknowledgeMessage(orgId, runId); + return null; + } + //create a failed snapshot await this.executionSnapshotSystem.createExecutionSnapshot(prisma, { run: {