diff --git a/packages/db/src/backup-lib.test.ts b/packages/db/src/backup-lib.test.ts index 5cabb4d0be2..8f9efddb9b9 100644 --- a/packages/db/src/backup-lib.test.ts +++ b/packages/db/src/backup-lib.test.ts @@ -42,7 +42,7 @@ afterEach(async () => { const cleanup = cleanups.pop(); await cleanup?.(); } -}); +}, 60_000); if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/low-trust-red-team-routes.test.ts b/server/src/__tests__/low-trust-red-team-routes.test.ts index d8a893f171e..3665e7819cb 100644 --- a/server/src/__tests__/low-trust-red-team-routes.test.ts +++ b/server/src/__tests__/low-trust-red-team-routes.test.ts @@ -68,6 +68,11 @@ async function waitFor(condition: () => boolean | Promise, timeoutMs = throw new Error("Timed out waiting for condition"); } +function isHeartbeatRunEventFkError(error: unknown) { + const message = error instanceof Error ? `${error.message} ${String(error.cause ?? "")}` : String(error); + return message.includes("heartbeat_run_events_run_id_heartbeat_runs_id_fk"); +} + async function deleteHeartbeatRunsAndWakeupsAfterActivityLogDrains(db: Db) { let lastError: unknown = null; for (let attempt = 0; attempt < 10; attempt += 1) { @@ -80,6 +85,9 @@ async function deleteHeartbeatRunsAndWakeupsAfterActivityLogDrains(db: Db) { return; } catch (error) { lastError = error; + if (!isHeartbeatRunEventFkError(error)) { + throw error; + } await new Promise((resolve) => setTimeout(resolve, 25)); } }