diff --git a/.changeset/healthy-oranges-refuse.md b/.changeset/healthy-oranges-refuse.md new file mode 100644 index 00000000000..dfc781ccce3 --- /dev/null +++ b/.changeset/healthy-oranges-refuse.md @@ -0,0 +1,5 @@ +--- +"trigger.dev": patch +--- + +fix: waitUntil now correctly waits for metadata.streams to finish diff --git a/packages/cli-v3/src/entryPoints/dev-run-worker.ts b/packages/cli-v3/src/entryPoints/dev-run-worker.ts index 6a526a57c36..2f44466170b 100644 --- a/packages/cli-v3/src/entryPoints/dev-run-worker.ts +++ b/packages/cli-v3/src/entryPoints/dev-run-worker.ts @@ -141,11 +141,6 @@ const runMetadataManager = new StandardMetadataManager( runMetadata.setGlobalManager(runMetadataManager); const waitUntilManager = new StandardWaitUntilManager(); waitUntil.setGlobalManager(waitUntilManager); -// Wait for all streams to finish before completing the run -waitUntil.register({ - requiresResolving: () => runMetadataManager.hasActiveStreams(), - promise: () => runMetadataManager.waitForAllStreams(), -}); const triggerLogLevel = getEnvVar("TRIGGER_LOG_LEVEL"); const showInternalLogs = getEnvVar("RUN_WORKER_SHOW_LOGS") === "true"; @@ -309,6 +304,12 @@ function resetExecutionEnvironment() { taskContext.disable(); standardTraceContextManager.reset(); + // Wait for all streams to finish before completing the run + waitUntil.register({ + requiresResolving: () => runMetadataManager.hasActiveStreams(), + promise: () => runMetadataManager.waitForAllStreams(), + }); + log(`[${new Date().toISOString()}] Reset execution environment`); } diff --git a/packages/cli-v3/src/entryPoints/managed-run-worker.ts b/packages/cli-v3/src/entryPoints/managed-run-worker.ts index c659af93de8..a962b4fbbaa 100644 --- a/packages/cli-v3/src/entryPoints/managed-run-worker.ts +++ b/packages/cli-v3/src/entryPoints/managed-run-worker.ts @@ -133,11 +133,6 @@ runMetadata.setGlobalManager(runMetadataManager); const waitUntilManager = new StandardWaitUntilManager(); waitUntil.setGlobalManager(waitUntilManager); -// Wait for all streams to finish before completing the run -waitUntil.register({ - requiresResolving: () => runMetadataManager.hasActiveStreams(), - promise: () => runMetadataManager.waitForAllStreams(), -}); const triggerLogLevel = getEnvVar("TRIGGER_LOG_LEVEL"); @@ -295,6 +290,12 @@ function resetExecutionEnvironment() { taskContext.disable(); standardTraceContextManager.reset(); + // Wait for all streams to finish before completing the run + waitUntil.register({ + requiresResolving: () => runMetadataManager.hasActiveStreams(), + promise: () => runMetadataManager.waitForAllStreams(), + }); + console.log(`[${new Date().toISOString()}] Reset execution environment`); }