Skip to content

Avoid resolving run data for background steps#2993

Open
NathanColosimo wants to merge 1 commit into
mainfrom
codex/background-step-unresolved-run
Open

Avoid resolving run data for background steps#2993
NathanColosimo wants to merge 1 commit into
mainfrom
codex/background-step-unresolved-run

Conversation

@NathanColosimo

@NathanColosimo NathanColosimo commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • load only run metadata before executing a background step
  • keep the existing terminal-state guard and replay behavior unchanged

Why

Background-step setup only consumes run status, timing, deployment, attributes, and spec version. Resolving input and output data at this point is unnecessary, especially for fan-out workloads and runs with large inputs.

Impact

Reduces data loading and response payload size during background-step startup without changing execution semantics.

Validation

  • pnpm turbo run build --filter=@workflow/core...
  • pnpm test in packages/core — 1,483 passed, 3 expected failures
  • pnpm typecheck
  • targeted Biome check for the changed files

@changeset-bot

changeset-bot Bot commented Jul 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: f8f1236

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 16 packages
Name Type
@workflow/core Patch
@workflow/builders Patch
@workflow/cli Patch
@workflow/next Patch
@workflow/nitro Patch
@workflow/vitest Patch
@workflow/web-shared Patch
@workflow/web Patch
workflow Patch
@workflow/world-testing Patch
@workflow/astro Patch
@workflow/nest Patch
@workflow/nuxt Patch
@workflow/rollup Patch
@workflow/sveltekit Patch
@workflow/vite Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview, Comment Jul 17, 2026 11:32pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment Jul 17, 2026 11:32pm
example-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-astro-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-express-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-fastify-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-hono-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-nitro-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-nuxt-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-sveltekit-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-tanstack-start-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workbench-vite-workflow Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workflow-docs Ready Ready Preview, Comment, Open in v0 Jul 17, 2026 11:32pm
workflow-swc-playground Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workflow-tarballs Ready Ready Preview, Comment Jul 17, 2026 11:32pm
workflow-web Ready Ready Preview, Comment Jul 17, 2026 11:32pm

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
❌ ▲ Vercel Production 1376 77 230 1683
❌ 💻 Local Development 1254 82 194 1530
❌ 📦 Local Production 1377 93 213 1683
❌ 🐘 Local Postgres 1382 88 213 1683
❌ 🪟 Windows 145 8 0 153
❌ 📋 Other 478 32 102 612
✅ vercel-multi-region 27 0 0 27
Total 6039 380 952 7371

❌ Failed Tests

▲ Vercel Production (77 failed)

astro (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

example (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

express (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

fastify (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

hono (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

nextjs-turbopack (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

nextjs-webpack (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

nitro (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

nuxt (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

sveltekit (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

vite (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE | 🔍 observability
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J | 🔍 observability
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783 | 🔍 observability
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497 | 🔍 observability
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
💻 Local Development (82 failed)

astro-stable (10 failed):

  • webhookWorkflow | wrun_41KXS6RQ930GXRHT32M6Z2RTVP
  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires
  • AbortController abortHookOrderingWorkflow [listener-first-hook-first]: addEventListener → hook.then → resumeHook → abort()

express-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

fastify-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

hono-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-turbopack-canary (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-turbopack-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-webpack-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nitro-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nuxt-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

vite-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires
📦 Local Production (93 failed)

astro-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

express-stable (9 failed):

  • webhookWorkflow | wrun_41KXS6RQ930GXRHT32M6Z2RTVP
  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

fastify-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

hono-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-turbopack-canary (9 failed):

  • webhookWorkflow | wrun_41KXS6RQ930GXRHT32M6Z2RTVP
  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-turbopack-stable (9 failed):

  • webhookWorkflow | wrun_41KXS6RQ930GXRHT32M6Z2RTVP
  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-webpack-canary (9 failed):

  • webhookWorkflow | wrun_41KXS6RQ930GXRHT32M6Z2RTVP
  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-webpack-stable (9 failed):

  • webhookWorkflow | wrun_41KXS6RQ930GXRHT32M6Z2RTVP
  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nitro-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nuxt-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

vite-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires
🐘 Local Postgres (88 failed)

astro-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

express-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

fastify-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

hono-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-turbopack-canary (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-turbopack-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-webpack-canary (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nextjs-webpack-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nitro-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

nuxt-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

vite-stable (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires
🪟 Windows (8 failed)

nextjs-turbopack (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires
📋 Other (32 failed)

e2e-local-dev-tanstack-start- (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

e2e-local-postgres-tanstack-start- (8 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

e2e-local-prod-tanstack-start- (9 failed):

  • webhookWorkflow | wrun_41KXS6RQ930GXRHT32M6Z2RTVP
  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires

e2e-vercel-prod-tanstack-start (7 failed):

  • promiseRaceStressTestWorkflow | wrun_41KXS6XF6Y0GM5X3GY1F2DEPTE
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • 'hookGetConflictWithPriorStepWorkflow' - hook.getConflict() does not block step execution | wrun_41KXS72EES0GM2BHNKZEPCV82J
  • 'hookGetConflictWithParallelStepWorkfl…' - hook.getConflict() does not block step execution | wrun_41KXS72H7D0GKN5FV8ZM66X783
  • hookGetConflictThenStepParallelWorkflow - hook.getConflict() continuation step runs alongside other steps | wrun_41KXS72N6W0GRCHEBEE6KXK497
  • AbortController abortThrowIfAbortedWorkflow: throwIfAborted causes FatalError, no retries

Details by Category

❌ ▲ Vercel Production
App Passed Failed Skipped
❌ astro 119 7 27
❌ example 119 7 27
❌ express 119 7 27
❌ fastify 119 7 27
❌ hono 119 7 27
❌ nextjs-turbopack 143 7 3
❌ nextjs-webpack 143 7 3
❌ nitro 119 7 27
❌ nuxt 119 7 27
❌ sveltekit 138 7 8
❌ vite 119 7 27
❌ 💻 Local Development
App Passed Failed Skipped
❌ astro-stable 118 10 25
❌ express-stable 120 8 25
❌ fastify-stable 120 8 25
❌ hono-stable 120 8 25
❌ nextjs-turbopack-canary 126 8 19
❌ nextjs-turbopack-stable 145 8 0
❌ nextjs-webpack-stable 145 8 0
❌ nitro-stable 120 8 25
❌ nuxt-stable 120 8 25
❌ vite-stable 120 8 25
❌ 📦 Local Production
App Passed Failed Skipped
❌ astro-stable 120 8 25
❌ express-stable 119 9 25
❌ fastify-stable 120 8 25
❌ hono-stable 120 8 25
❌ nextjs-turbopack-canary 125 9 19
❌ nextjs-turbopack-stable 144 9 0
❌ nextjs-webpack-canary 125 9 19
❌ nextjs-webpack-stable 144 9 0
❌ nitro-stable 120 8 25
❌ nuxt-stable 120 8 25
❌ vite-stable 120 8 25
❌ 🐘 Local Postgres
App Passed Failed Skipped
❌ astro-stable 120 8 25
❌ express-stable 120 8 25
❌ fastify-stable 120 8 25
❌ hono-stable 120 8 25
❌ nextjs-turbopack-canary 126 8 19
❌ nextjs-turbopack-stable 145 8 0
❌ nextjs-webpack-canary 126 8 19
❌ nextjs-webpack-stable 145 8 0
❌ nitro-stable 120 8 25
❌ nuxt-stable 120 8 25
❌ vite-stable 120 8 25
❌ 🪟 Windows
App Passed Failed Skipped
❌ nextjs-turbopack 145 8 0
❌ 📋 Other
App Passed Failed Skipped
❌ e2e-local-dev-tanstack-start- 120 8 25
❌ e2e-local-postgres-tanstack-start- 120 8 25
❌ e2e-local-prod-tanstack-start- 119 9 25
❌ e2e-vercel-prod-tanstack-start 119 7 27
✅ vercel-multi-region
App Passed Failed Skipped
✅ nextjs-turbopack 27 0 0

📋 View full workflow run


Some E2E test jobs failed:

  • Vercel Prod: failure
  • Local Dev: failure
  • Local Prod: failure
  • Local Postgres: failure
  • Windows: failure

Check the workflow run for details.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

📊 Workflow Benchmarks

commit f8f1236 · Fri, 17 Jul 2026 23:45:15 GMT · run logs

Backend: vercel · app: nextjs-turbopack

Metric Scenario Avg (ms) P10 (ms) P75 (ms) P90 (ms) P99 (ms) Samples
TTFS step 1027 (-2.4%) 236 1299 🔴 1423 🔴 1521 🔴 30
TTFS stream 1019 (+1.8%) 252 1286 🔴 1321 🔴 1423 🔴 30
TTFS hook + stream 1374 (+8.5%) 563 1557 🔴 1607 🔴 1681 🔴 30
STSO 1020 steps (1-20) 302 (+27%) 199 351 🔴 463 🔴 755 🔴 19
STSO 1020 steps (101-120) 280 (+8.5%) 216 290 🔴 369 🔴 514 🔴 19
STSO 1020 steps (1001-1020) 557 (+11%) 496 548 🔴 736 🔴 777 🔴 19
WO 1020 steps 419944 (+6.5%) 419944 419944 419944 419944 1
SL stream latency 164 (+8.3%) 118 182 🔴 233 🔴 359 🔴 30

Avg deltas compare against the most recent benchmark run on main at the time of this run.

Metrics — TTFS: time to first step body (in-deployment start() → first step body, deployment clocks) · STSO: step-to-step overhead (gap between consecutive step bodies) · WO: workflow overhead (whole-run time outside step bodies, in-deployment anchored) · SL: stream latency (in-deployment write → read propagation, readAt - writtenAt)

Scenarios — step: one trivial no-op step, no stream; no hooks, so the run stays in turbo mode (in-process fast path) · stream: one streaming step; no hooks, so the run stays in turbo mode (in-process fast path) · hook + stream: registers a hook before one step, which exits turbo mode (dispatch path) · 1020 steps: 1020 trivial sequential steps; STSO is measured between consecutive steps in the given step ranges, and WO is the whole-run overhead outside step bodies · stream latency: parallel reader/writer steps on a dedicated stream; SL is the in-deployment write->read propagation (readAt - writtenAt)

🟢/🔴 mark percentiles within/above target. Targets (p75/p90/p99, ms) — TTFS 200/300/600 · SL 50/60/125 · STSO (1-20) 20/30/60 · STSO (101-120) 30/45/90 · STSO (1001-1020) 40/60/120

All metrics are measured from deployment-side timestamps only. Runs are triggered by an in-deployment route that stamps the anchor (clientStart) right before start(), so the CI runner’s request and its path through api.vercel.com sit outside every measured window. TTFS = in-deployment start() → first step body (turbo uses the in-process fast path, non-turbo the dispatch path), and includes the VQS dispatch hop plus any /flow cold start. STSO/WO are measured between step bodies on the deployment. SL is measured inside the workflow (parallel reader/writer steps), so it no longer includes the api.vercel.com read path.

Cold starts are kept in the numbers on purpose — they are part of real bursty-workload latency. The workbench deployment cold-starts the /flow invocation for a large fraction of runs, inflating P75+; the P10 column shows the warm-start floor for comparison.

@NathanColosimo
NathanColosimo force-pushed the codex/background-step-unresolved-run branch from bcf3d68 to f8f1236 Compare July 17, 2026 23:28
@NathanColosimo
NathanColosimo marked this pull request as ready for review July 17, 2026 23:29
@NathanColosimo
NathanColosimo requested review from a team and ijjk as code owners July 17, 2026 23:29
Comment on lines +855 to +856
workflowRun = {
...bgRun,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
workflowRun = {
...bgRun,
// `bgRun` was fetched with `resolveData: 'none'` (an
// optimization for the common early-return case), so its
// `input` is `undefined`. The inline replay below runs
// the workflow function via `runWorkflow`, which hydrates
// the workflow arguments from `workflowRun.input`.
// Re-fetch the run with data resolved so replay receives
// the correct arguments; otherwise a workflow that takes
// input would be replayed with empty arguments, breaking
// deterministic replay.
const fullRun = await world.runs.get(runId, {
resolveData: 'all',
});
workflowRun = {
...fullRun,

Inline-replay-after-background-step reuses a resolveData: 'none' run snapshot whose input is undefined, so workflows that take input are replayed with empty arguments, breaking deterministic replay.

Fix on Vercel

@karthikscale3 karthikscale3 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI review: One blocking P1 finding.

);
workflowRun = bgRun;
workflowRun = {
...bgRun,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI review: [P1] Re-fetch the resolved run before inline replay

bgRun was loaded with resolveData: 'none', so its input is undefined. When this is the last pending background step, this object becomes workflowRun, and runWorkflow() immediately hydrates arguments from workflowRun.input; that throws Error: Invalid input and fails the workflow. The Linux/Windows unit jobs, Vitest plugin tests, and local-production Hono E2E already reproduce this path. Keep the metadata-only fetch for early-return paths, but fetch with resolveData: 'all' (and re-check terminal status) before falling through to replay.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants