From 5878127d10dd19d6097f428eb5513bf7c80cc0c6 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 15 Sep 2025 12:18:42 +0100 Subject: [PATCH] fix(engine): carry over completed waitpoints on PENDING_EXECUTING stalls --- internal-packages/run-engine/src/engine/index.ts | 2 ++ .../run-engine/src/engine/systems/runAttemptSystem.ts | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/internal-packages/run-engine/src/engine/index.ts b/internal-packages/run-engine/src/engine/index.ts index 076f51d5cd..8f1aedbebe 100644 --- a/internal-packages/run-engine/src/engine/index.ts +++ b/internal-packages/run-engine/src/engine/index.ts @@ -1238,6 +1238,8 @@ export class RunEngine { }, orgId: latestSnapshot.organizationId, projectId: latestSnapshot.projectId, + checkpointId: latestSnapshot.checkpointId ?? undefined, + completedWaitpoints: latestSnapshot.completedWaitpoints, error: { type: "INTERNAL_ERROR", code: "TASK_RUN_DEQUEUED_MAX_RETRIES", diff --git a/internal-packages/run-engine/src/engine/systems/runAttemptSystem.ts b/internal-packages/run-engine/src/engine/systems/runAttemptSystem.ts index 0b4449f42f..d8d5f6d7da 100644 --- a/internal-packages/run-engine/src/engine/systems/runAttemptSystem.ts +++ b/internal-packages/run-engine/src/engine/systems/runAttemptSystem.ts @@ -1139,6 +1139,7 @@ export class RunAttemptSystem { workerId, runnerId, checkpointId, + completedWaitpoints, tx, }: { run: TaskRun; @@ -1154,6 +1155,10 @@ export class RunAttemptSystem { runnerId?: string; checkpointId?: string; tx?: PrismaClientOrTransaction; + completedWaitpoints?: { + id: string; + index?: number; + }[]; }): Promise<{ wasRequeued: boolean } & ExecutionResult> { const prisma = tx ?? this.$.prisma; @@ -1201,6 +1206,7 @@ export class RunAttemptSystem { workerId, runnerId, checkpointId, + completedWaitpoints, }); return {