Skip to content

[test] workflow-server PR #828 - #3701

Closed
vercel-gh-bot-2[bot] wants to merge 1 commit into
mainfrom
test/server-pr-828
Closed

[test] workflow-server PR #828#3701
vercel-gh-bot-2[bot] wants to merge 1 commit into
mainfrom
test/server-pr-828

Conversation

@vercel-gh-bot-2

Copy link
Copy Markdown

This PR was automatically created to test a workflow-server preview deployment.


This PR will be automatically closed after 24 hours.

@changeset-bot

changeset-bot Bot commented Aug 20, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 63ed1dd

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

@vercel

vercel Bot commented Aug 20, 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, v0 Aug 21, 2026 8:03pm
example-nextjs-workflow-webpack Ready Ready Preview, v0 Aug 21, 2026 8:03pm
example-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-astro-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-express-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-fastify-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-hono-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-nestjs-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-nitro-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-nuxt-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-python-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-sveltekit-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-tanstack-start-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workbench-vite-workflow Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workflow-docs Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workflow-swc-playground Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workflow-tarballs Ready Ready Preview, v0 Aug 21, 2026 8:03pm
workflow-web Ready Ready Preview, v0 Aug 21, 2026 8:03pm

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

❌ Failed E2E Tests

▲ Vercel Production (204 failed)

astro-node (10 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable | wrun_41M0JYZBBJ0GH7HWVCFGBM9CNS | 🔍 observability
  • hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_41M0JYZ42Z0GH4WZT5SY986CDD | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes workflow throws after awaited setAttributes: attribute still persists on the failed run

astro-quickjs (11 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • AbortController abortAnyInStepWorkflow: AbortSignal.any inside a step composes deserialized signals
  • AbortController abortListenerWorkflow: signal.addEventListener fires on the deserialized step signal
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes workflow throws after awaited setAttributes: attribute still persists on the failed run

example-node (4 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation

example-quickjs (7 failed):

  • webhookWorkflow | wrun_41M0JYNMVS0GXBGT5V2QS57XF8 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting

express-node (5 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly

express-quickjs (10 failed):

  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • AbortController abortAnyInStepWorkflow: AbortSignal.any inside a step composes deserialized signals
  • AbortController abortListenerWorkflow: signal.addEventListener fires on the deserialized step signal
  • AbortController abortDeterministicBranchFromStepWorkflow: branches stay consistent when abort comes from a step
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes workflow throws after awaited setAttributes: attribute still persists on the failed run

fastify-node (10 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • distributedAbortController - manual abort triggers signal | wrun_41M0JZ96Y40GVA1E7WD03V86TW | 🔍 observability
  • distributedAbortController - reconnect to existing controller | wrun_41M0JZAM210GZ2YGM48CD1E3KF | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes workflow throws after awaited setAttributes: attribute still persists on the failed run

fastify-quickjs (7 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting

hono-node (6 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes fire-and-forget: void setAttributes lands without awaiting

hono-quickjs (9 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • AbortController abortFromStepWorkflow: step abort cancels an in-flight sibling step
  • AbortController abortAnyInStepWorkflow: AbortSignal.any inside a step composes deserialized signals
  • AbortController abortDeterministicBranchFromStepWorkflow: branches stay consistent when abort comes from a step
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting

nest-node (7 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable | wrun_41M0JYZBBJ0GH7HWVCFGBM9CNS | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes fire-and-forget: void setAttributes lands without awaiting

nest-quickjs (10 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • AbortController abortFromStepWorkflow: step abort cancels an in-flight sibling step
  • AbortController abortAnyInStepWorkflow: AbortSignal.any inside a step composes deserialized signals
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes validation DX: invalid writes throw catchable FatalErrors naming rule and limit

nextjs-turbopack-node (2 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes

nextjs-turbopack-quickjs (7 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting

nextjs-webpack-node (7 failed):

  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes Promise.all of disjoint-key writes: every key lands

nextjs-webpack-quickjs (11 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable | wrun_41M0JYZBBJ0GH7HWVCFGBM9CNS | 🔍 observability
  • AbortController abortAnyInStepWorkflow: AbortSignal.any inside a step composes deserialized signals
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting

nitro-node (2 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability

nitro-quickjs (7 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable | wrun_41M0JYZBBJ0GH7HWVCFGBM9CNS | 🔍 observability
  • AbortController abortFromStepWorkflow: step abort cancels an in-flight sibling step
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly

nuxt-node (10 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable | wrun_41M0JYZBBJ0GH7HWVCFGBM9CNS | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes workflow throws after awaited setAttributes: attribute still persists on the failed run

nuxt-quickjs (9 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable | wrun_41M0JYZBBJ0GH7HWVCFGBM9CNS | 🔍 observability
  • AbortController abortFromStepWorkflow: step abort cancels an in-flight sibling step
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events

python-node (8 failed):

  • promiseAllWorkflow | wrun_41M0JYMK0W0GXBVMQ55V7QWXDW | 🔍 observability
  • sleepingWorkflow | wrun_41M0JYPKHM0GM43SNKCWET3Y12 | 🔍 observability
  • parallelSleepWorkflow | wrun_41M0JYPMCZ0GPMQGP1CD0R0TFE | 🔍 observability
  • nullByteWorkflow | wrun_41M0JYQJKF0GNV2Z3S3GZ21VRZ | 🔍 observability
  • cancelRun - cancelling a running workflow | wrun_41M0JZ2YAA0GT4D62THVYP9C9X | 🔍 observability
  • cancelRun via CLI - cancelling a running workflow | wrun_41M0JZ33BR0GH40BNP9X6C7J26 | 🔍 observability
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_41M0JZ3BNP0GJA5JWCGBM1C1SC | 🔍 observability
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_41M0JZ4Z330GKTEAPGDTBSG79V | 🔍 observability

sveltekit-node (2 failed):

  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_41M0JYZ42Z0GH4WZT5SY986CDD | 🔍 observability

sveltekit-quickjs (10 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes Promise.all of disjoint-key writes: every key lands
  • setAttributes workflow throws after awaited setAttributes: attribute still persists on the failed run
  • setAttributes validation DX: invalid writes throw catchable FatalErrors naming rule and limit

tanstack-start-node (5 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_41M0JYZJJF0GQD2V2GMJS14C4X | 🔍 observability
  • distributedAbortController - manual abort triggers signal | wrun_41M0JZ96Y40GVA1E7WD03V86TW | 🔍 observability

tanstack-start-quickjs (11 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • AbortController abortListenerWorkflow: signal.addEventListener fires on the deserialized step signal
  • AbortController abortDeterministicBranchFromStepWorkflow: branches stay consistent when abort comes from a step
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes validation DX: invalid writes throw catchable FatalErrors naming rule and limit

vite-node (9 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714 | 🔍 observability
  • distributedAbortController - manual abort triggers signal | wrun_41M0JZ96Y40GVA1E7WD03V86TW | 🔍 observability
  • distributedAbortController - reconnect to existing controller | wrun_41M0JZAM210GZ2YGM48CD1E3KF | 🔍 observability
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
  • setAttributes Promise.all of disjoint-key writes: every key lands

vite-quickjs (8 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2 | 🔍 observability
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT | 🔍 observability
  • AbortController abortThrowIfAbortedMidFlightWorkflow: throwIfAborted in a polling loop bails when abort fires
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes setAttributesInsideStepWorkflow: step-body calls append attributed native events
  • setAttributes fire-and-forget: void setAttributes lands without awaiting
vercel-ws-transport (17 failed)

example (3 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT
  • resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_41M0JYZJJF0GQD2V2GMJS14C4X

express (5 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly
  • setAttributes fire-and-forget: void setAttributes lands without awaiting

nextjs-turbopack (3 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2
  • setAttributes start: initial attributes are seeded on run creation
  • setAttributes start: reserved-prefix initial attributes are seeded with allowReservedAttributes

vite (6 failed):

  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_41M0JYY7K60GXF3YV420SYFNB2
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_41M0JYX8KV0GZQ9X291RKSQ714
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_41M0JYYE620GGH5R5XN011HKJT
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable | wrun_41M0JYZBBJ0GH7HWVCFGBM9CNS
  • resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_41M0JYZJJF0GQD2V2GMJS14C4X
  • distributedAbortController - manual abort triggers signal | wrun_41M0JZ96Y40GVA1E7WD03V86TW

⚠️ Flaky E2E Tests (passed on retry)

These tests failed at least once and passed on a retry. A recurring entry here is a real race worth investigating.

39 flaky tests
  • abortAnyInStepWorkflow: AbortSignal.any inside a step composes deserialized signals (fastify)
  • abortListenerWorkflow: signal.addEventListener fires on the deserialized step signal (fastify)
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously (express)
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously (fastify)
  • distributedAbortController - manual abort triggers signal (astro)
  • distributedAbortController - manual abort triggers signal (nuxt)
  • distributedAbortController - manual abort triggers signal (sveltekit)
  • fire-and-forget: void setAttributes lands without awaiting (express)
  • fire-and-forget: void setAttributes lands without awaiting (sveltekit)
  • hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue (nuxt)
  • hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue (tanstack-start)
  • hookCleanupTestWorkflow - hook token reuse after workflow completion (nextjs-webpack)
  • hookCleanupTestWorkflow - hook token reuse after workflow completion (sveltekit)
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered (nest)
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered (nextjs-turbopack)
  • hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered (vite)
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable (fastify)
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable (nextjs-webpack)
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable (tanstack-start)
  • hookMinRetentionWorkflow - terminal Hook cannot resume and its token stays unavailable (vite)
  • parallelStepsThenWebhookWorkflow - no hook_conflict from same-tick replay race (tanstack-start)
  • Promise.all of disjoint-key writes: every key lands (express)
  • Promise.all of disjoint-key writes: every key lands (nest)
  • Promise.all of disjoint-key writes: every key lands (nextjs-turbopack)
  • Promise.all of disjoint-key writes: every key lands (nuxt)
  • resume-or-start route pattern - resumeHook retried after start() reaches the new run (astro)
  • resume-or-start route pattern - resumeHook retried after start() reaches the new run (sveltekit)
  • setAttributesInsideStepWorkflow: step-body calls append attributed native events (astro)
  • setAttributesInsideStepWorkflow: step-body calls append attributed native events (express)
  • setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly (nextjs-turbopack)
  • setAttributesWorkflow: workflow-body calls append native attr_set events and merge correctly (sveltekit)
  • start: initial attributes are seeded on run creation (nextjs-webpack)
  • start: initial attributes are seeded on run creation (sveltekit)
  • start: reserved-prefix initial attributes are seeded with allowReservedAttributes (sveltekit)
  • validation DX: invalid writes throw catchable FatalErrors naming rule and limit (astro)
  • validation DX: invalid writes throw catchable FatalErrors naming rule and limit (express)
  • webhookWorkflow (nextjs-turbopack)
  • workflow throws after awaited setAttributes: attribute still persists on the failed run (nest)
  • workflow throws after awaited setAttributes: attribute still persists on the failed run (nextjs-turbopack)

🛠 Infra Events (absorbed by the harness)

Platform anomalies the e2e harness detected and worked around (e.g. a run the queue never picked up, replaced by a fresh run). Clustered timestamps indicate a backend blip; a steady drip indicates a platform issue worth escalating.

14 infra events
  • cold-start-warmup · suite warmup (python) · at 20:03:14Z · abandoned wrun_41M0JYKKEE0GRMHRMBYMF737D7 · (+7 more)
  • run-pickup-stall · sleepingWorkflow (python) · at 20:03:30Z · abandoned wrun_41M0JYQ8C50GTGPA0FAP2FKA6K
  • run-pickup-stall · promiseAllWorkflow (python) · at 20:03:30Z · abandoned wrun_41M0JYQ8BZ0GZK0EQ0BASV8XQW
  • run-pickup-stall · nullByteWorkflow (python) · at 20:03:30Z · abandoned wrun_41M0JYQ8C80GKAVD6MBA2PM8NW
  • run-pickup-stall · parallelSleepWorkflow (python) · at 20:03:31Z · abandoned wrun_41M0JYQ8C50GTGPA0FAP2FKA6M
  • run-pickup-stall · cancelRun - cancelling a running workflow (python) · at 20:03:31Z · abandoned wrun_41M0JYQ8S70GRE3G07X74K3JWS
  • run-pickup-stall · cancelRun - cancelling a running workflow (python) · at 20:04:04Z · abandoned wrun_41M0JYR8QH0GJ8TDP88619F1B1
  • run-pickup-stall · sleepingWorkflow (python) · at 20:04:31Z · abandoned wrun_41M0JYS41P0GJQ3X2T1ZCWYJ8P
  • run-pickup-stall · nullByteWorkflow (python) · at 20:04:31Z · abandoned wrun_41M0JYS41R0GHGNXW0FWPFNGKT
  • run-pickup-stall · parallelSleepWorkflow (python) · at 20:04:32Z · abandoned wrun_41M0JYS3YA0GP4PZ7K0YK0JBNH
  • run-pickup-stall · promiseAllWorkflow (python) · at 20:04:32Z · abandoned wrun_41M0JYS3YQ0GW6J6JK5FEECM6W
  • run-pickup-stall · cancelRun via CLI - cancelling a running workflow (python) · at 20:05:22Z · abandoned wrun_41M0JYS8QG0GKB0NTK66DPEN2P
  • run-pickup-stall · cancelRun via CLI - cancelling a running workflow (python) · at 20:07:03Z · abandoned wrun_41M0JYW0M20GW0BVSKP7FNC5YN
  • run-pickup-stall · sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration (python) · at 20:07:44Z · abandoned wrun_41M0JYVVTX0GPE4TJA3VJ4443A

E2E Test Summary

Summary
Passed Failed Skipped Total
❌ ▲ Vercel Production 3374 204 742 4320
✅ vercel-multi-region 27 0 0 27
❌ vercel-ws-transport 536 17 87 640
Total 3937 221 829 4987
Details by Category

❌ ▲ Vercel Production

App Passed Failed Skipped
❌ astro-node 122 10 28
❌ astro-quickjs 121 11 28
❌ example-node 128 4 28
❌ example-quickjs 125 7 28
❌ express-node 127 5 28
❌ express-quickjs 122 10 28
❌ fastify-node 122 10 28
❌ fastify-quickjs 125 7 28
❌ hono-node 126 6 28
❌ hono-quickjs 123 9 28
❌ nest-node 125 7 28
❌ nest-quickjs 122 10 28
❌ nextjs-turbopack-node 155 2 3
❌ nextjs-turbopack-quickjs 150 7 3
❌ nextjs-webpack-node 150 7 3
❌ nextjs-webpack-quickjs 146 11 3
❌ nitro-node 130 2 28
❌ nitro-quickjs 125 7 28
❌ nuxt-node 122 10 28
❌ nuxt-quickjs 123 9 28
❌ python-node 0 8 152
❌ sveltekit-node 149 2 9
❌ sveltekit-quickjs 141 10 9
❌ tanstack-start-node 127 5 28
❌ tanstack-start-quickjs 121 11 28
❌ vite-node 123 9 28
❌ vite-quickjs 124 8 28

✅ vercel-multi-region

App Passed Failed Skipped
✅ nextjs-turbopack 27 0 0

❌ vercel-ws-transport

App Passed Failed Skipped
❌ example 129 3 28
❌ express 127 5 28
❌ nextjs-turbopack 154 3 3
❌ vite 126 6 28

📋 View full workflow run

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Sim World

Simulated world deterministic testing for races. Traces

🟠 world-sim scenario book — 1 fail of 41 total

fence=per-spec

scenario outcome events virt replay violations
smoke-no-steps completed 3 0ms ok 0
smoke-one-step completed 6 0ms ok 0
hook-at-step-started completed 12 0ms ok 0
hook-at-step-completed completed 12 0ms ok 0
hook-at-hook-created completed 12 0ms ok 0
deadline-hook-wins completed 7 1.0h ok 0
deadline-expires completed 7 1.0h ok 0
long-sleep completed 11 30.0d ok 0
hook-never-arrives stalled 3 0ms skipped 0
step-retries-twice completed 10 2.0s ok 0
parallel-steps completed 9 0ms ok 0
hook-on-execution-state completed 12 0ms ok 0
peek-hook-before-branch completed 12 0ms ok 0
peek-hook-after-branch completed 12 0ms ok 0
peek-hook-at-registration completed 12 0ms ok 0
race-hook-before-probe completed 12 0ms ok 0
race-hook-after-probe completed 12 0ms ok 0
race-duplicate-delivery completed 13 0ms ok 0
attr-hook-before-step completed 11 0ms ok 0
attr-hook-after-step completed 11 0ms ok 0
attr-from-step-body completed 13 0ms ok 0
fork-hook-after-timeout completed 14 1.0m ok 0
fork-hook-before-timeout completed 14 1.0m ok 0
count-hook-after-timeout completed 17 1.0m ok 0
count-hook-before-timeout completed 20 1.0m ok 0
stale-read-step-count-fork completed 20 1.0m ok 0
stale-read-equal-step-counts completed 14 1.0m ok 0
step-vs-step-fork completed 12 0ms ok 0
step-vs-step-fork-fenced completed 12 0ms ok 0
fence-catches-benign-direction completed 12 5ms ok 0
in-flight-before-decision completed 17 1.0m ok 0
in-flight-before-decision-counted completed 17 1.0m ok 0
in-flight-after-decision completed 19 2.0m ok 0
stale-read-step-count-fork-fenced completed 20 1.0m ok 0
fork-hook-wins completed 13 1.0m ok 0
fork-timeout-wins completed 13 1.0m ok 0
unclaimed-payload-under-fork completed 17 1.0m ok 0
claimed-payload-under-fork completed 17 1.0m ok 0
writers-independent-step-bodies completed 12 0ms ok 0
writers-scripted-tempo completed 12 0ms ok 0
cancel-mid-step cancelled 7 0ms skipped 0

Full trace: world-sim.txt

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants