Skip to content

fix(next): remove unused dataDir option from withWorkflow()#1619

Open
johnlindquist wants to merge 1 commit intomainfrom
remove-dead-datadir-option
Open

fix(next): remove unused dataDir option from withWorkflow()#1619
johnlindquist wants to merge 1 commit intomainfrom
remove-dead-datadir-option

Conversation

@johnlindquist
Copy link
Copy Markdown
Contributor

Summary

  • Remove the dataDir option from withWorkflow()'s type definition — it was accepted but never read
  • WORKFLOW_LOCAL_DATA_DIR is unconditionally set to .next/workflow-data on line 53, ignoring any user-provided value

Test plan

  • pnpm typecheck passes
  • Existing Next.js workbench apps build and run without changes (no one could have been using this option since it was a no-op)

The `dataDir` option was accepted in the type definition but never
read — `WORKFLOW_LOCAL_DATA_DIR` was unconditionally set to
`.next/workflow-data`. Remove the dead option to avoid confusion.
@johnlindquist johnlindquist requested review from a team and ijjk as code owners April 6, 2026 20:04
@vercel
Copy link
Copy Markdown
Contributor

vercel bot commented Apr 6, 2026

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 6, 2026

🦋 Changeset detected

Latest commit: 0a02e41

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

This PR includes changesets to release 16 packages
Name Type
@workflow/next Patch
workflow Patch
@workflow/ai Patch
@workflow/world-testing Patch
@workflow/core Patch
@workflow/builders Patch
@workflow/cli Patch
@workflow/nitro Patch
@workflow/vitest Patch
@workflow/web-shared Patch
@workflow/astro Patch
@workflow/nest Patch
@workflow/rollup Patch
@workflow/sveltekit Patch
@workflow/vite Patch
@workflow/nuxt 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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 6, 2026

📊 Benchmark Results

📈 Comparing against baseline from main branch. Green 🟢 = faster, Red 🔺 = slower.

workflow with no steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 0.041s (-5.8% 🟢) 1.005s (~) 0.965s 10 1.00x
💻 Local Next.js (Turbopack) 0.048s 1.005s 0.957s 10 1.17x
🌐 Redis Next.js (Turbopack) 0.052s 1.005s 0.953s 10 1.28x
🐘 Postgres Next.js (Turbopack) 0.058s 1.010s 0.952s 10 1.42x
🐘 Postgres Express 0.058s (-4.6%) 1.011s (~) 0.953s 10 1.43x
🐘 Postgres Nitro 0.059s (-8.6% 🟢) 1.009s (~) 0.950s 10 1.46x
💻 Local Express ⚠️ missing - - - -
workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 1.119s 2.006s 0.887s 10 1.00x
💻 Local Next.js (Turbopack) 1.121s 2.005s 0.885s 10 1.00x
🐘 Postgres Next.js (Turbopack) 1.131s 2.010s 0.879s 10 1.01x
💻 Local Nitro 1.132s (~) 2.005s (~) 0.873s 10 1.01x
🐘 Postgres Nitro 1.154s (+0.9%) 2.009s (~) 0.855s 10 1.03x
🐘 Postgres Express 1.159s (+1.1%) 2.010s (~) 0.851s 10 1.04x
💻 Local Express ⚠️ missing - - - -
workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 10.770s 11.022s 0.252s 3 1.00x
💻 Local Next.js (Turbopack) 10.811s 11.022s 0.211s 3 1.00x
🐘 Postgres Next.js (Turbopack) 10.853s 11.018s 0.165s 3 1.01x
🐘 Postgres Nitro 10.881s (~) 11.023s (~) 0.142s 3 1.01x
💻 Local Nitro 10.926s (~) 11.022s (~) 0.097s 3 1.01x
🐘 Postgres Express 10.978s (+1.0%) 11.355s (+3.0%) 0.377s 3 1.02x
💻 Local Express ⚠️ missing - - - -
workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 14.235s 15.027s 0.792s 4 1.00x
🐘 Postgres Next.js (Turbopack) 14.389s 15.019s 0.630s 4 1.01x
🐘 Postgres Express 14.564s (~) 15.023s (~) 0.459s 4 1.02x
🐘 Postgres Nitro 14.597s (+0.7%) 15.022s (~) 0.425s 4 1.03x
💻 Local Next.js (Turbopack) 14.637s 15.030s 0.393s 4 1.03x
💻 Local Nitro 14.991s (~) 15.029s (-1.6%) 0.039s 4 1.05x
💻 Local Express ⚠️ missing - - - -
workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 13.342s 14.024s 0.683s 7 1.00x
🐘 Postgres Next.js (Turbopack) 13.834s 14.165s 0.331s 7 1.04x
🐘 Postgres Nitro 14.113s (+1.0%) 14.882s (+3.0%) 0.769s 7 1.06x
🐘 Postgres Express 14.260s (+2.3%) 15.021s (+6.0% 🔺) 0.761s 6 1.07x
💻 Local Next.js (Turbopack) 15.960s 16.194s 0.234s 6 1.20x
💻 Local Nitro 16.861s (+0.7%) 17.199s (+1.0%) 0.338s 6 1.26x
💻 Local Express ⚠️ missing - - - -
Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.236s 2.010s 0.774s 15 1.00x
🐘 Postgres Express 1.263s (~) 2.008s (~) 0.746s 15 1.02x
🐘 Postgres Nitro 1.266s (~) 2.010s (~) 0.744s 15 1.02x
🌐 Redis Next.js (Turbopack) 1.289s 2.006s 0.717s 15 1.04x
💻 Local Next.js (Turbopack) 1.495s 2.005s 0.511s 15 1.21x
💻 Local Nitro 1.540s (+0.9%) 2.006s (~) 0.466s 15 1.25x
💻 Local Express ⚠️ missing - - - -
Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.326s (~) 3.009s (~) 0.683s 10 1.00x
🐘 Postgres Next.js (Turbopack) 2.400s 3.011s 0.611s 10 1.03x
🐘 Postgres Express 2.423s (+3.8%) 3.110s (+3.3%) 0.687s 10 1.04x
🌐 Redis Next.js (Turbopack) 2.549s 3.008s 0.459s 10 1.10x
💻 Local Next.js (Turbopack) 2.852s 3.208s 0.356s 10 1.23x
💻 Local Nitro 3.225s (+10.4% 🔺) 4.136s (+37.5% 🔺) 0.911s 8 1.39x
💻 Local Express ⚠️ missing - - - -
Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 3.449s (~) 4.012s (~) 0.563s 8 1.00x
🐘 Postgres Express 3.495s (+0.6%) 4.010s (~) 0.516s 8 1.01x
🐘 Postgres Next.js (Turbopack) 3.628s 4.010s 0.382s 8 1.05x
🌐 Redis Next.js (Turbopack) 4.116s 4.869s 0.753s 7 1.19x
💻 Local Next.js (Turbopack) 8.117s 9.018s 0.901s 4 2.35x
💻 Local Nitro 8.412s (+1.4%) 9.020s (~) 0.609s 4 2.44x
💻 Local Express ⚠️ missing - - - -
Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.207s 2.008s 0.801s 15 1.00x
🐘 Postgres Nitro 1.255s (-0.6%) 2.008s (~) 0.753s 15 1.04x
🐘 Postgres Express 1.260s (+0.6%) 2.009s (~) 0.749s 15 1.04x
🌐 Redis Next.js (Turbopack) 1.291s 2.006s 0.715s 15 1.07x
💻 Local Nitro 1.533s (-3.0%) 2.007s (-3.2%) 0.474s 15 1.27x
💻 Local Next.js (Turbopack) 1.630s 2.072s 0.442s 15 1.35x
💻 Local Express ⚠️ missing - - - -
Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.309s (-1.2%) 3.011s (~) 0.702s 10 1.00x
🐘 Postgres Express 2.312s (-1.0%) 3.010s (~) 0.697s 10 1.00x
🐘 Postgres Next.js (Turbopack) 2.370s 3.008s 0.638s 10 1.03x
🌐 Redis Next.js (Turbopack) 2.604s 3.007s 0.403s 10 1.13x
💻 Local Next.js (Turbopack) 3.009s 3.564s 0.555s 9 1.30x
💻 Local Nitro 3.055s (~) 3.884s (~) 0.830s 8 1.32x
💻 Local Express ⚠️ missing - - - -
Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 3.452s (-1.1%) 4.009s (~) 0.558s 8 1.00x
🐘 Postgres Express 3.464s (-0.6%) 4.011s (~) 0.547s 8 1.00x
🐘 Postgres Next.js (Turbopack) 3.648s 4.012s 0.364s 8 1.06x
🌐 Redis Next.js (Turbopack) 4.108s 4.868s 0.760s 7 1.19x
💻 Local Next.js (Turbopack) 7.806s 8.267s 0.461s 4 2.26x
💻 Local Nitro 8.747s (-2.4%) 9.276s (-2.6%) 0.528s 4 2.53x
💻 Local Express ⚠️ missing - - - -
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 0.681s 1.004s 0.323s 60 1.00x
🐘 Postgres Next.js (Turbopack) 0.765s 1.006s 0.241s 60 1.12x
🐘 Postgres Nitro 0.837s (+0.6%) 1.023s (+1.6%) 0.186s 59 1.23x
🐘 Postgres Express 0.853s (+2.0%) 1.023s (+1.6%) 0.170s 59 1.25x
💻 Local Next.js (Turbopack) 0.874s 1.021s 0.147s 59 1.28x
💻 Local Nitro 1.009s (+1.9%) 1.505s (+22.4% 🔺) 0.496s 40 1.48x
💻 Local Express ⚠️ missing - - - -
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 1.651s 2.005s 0.354s 45 1.00x
🐘 Postgres Next.js (Turbopack) 1.862s 2.029s 0.167s 45 1.13x
🐘 Postgres Nitro 1.972s (+0.5%) 2.257s (~) 0.286s 40 1.19x
🐘 Postgres Express 2.005s (~) 2.609s (+2.8%) 0.603s 35 1.21x
💻 Local Next.js (Turbopack) 2.715s 3.008s 0.293s 30 1.64x
💻 Local Nitro 3.056s (~) 3.759s (+6.0% 🔺) 0.703s 24 1.85x
💻 Local Express ⚠️ missing - - - -
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 3.262s 4.008s 0.746s 30 1.00x
🐘 Postgres Next.js (Turbopack) 3.818s 4.010s 0.193s 30 1.17x
🐘 Postgres Nitro 4.044s (+2.1%) 4.627s (+7.7% 🔺) 0.582s 26 1.24x
🐘 Postgres Express 4.105s (+2.5%) 4.851s (+4.9%) 0.746s 25 1.26x
💻 Local Next.js (Turbopack) 8.632s 9.017s 0.385s 14 2.65x
💻 Local Nitro 9.210s (-0.6%) 9.787s (-2.3%) 0.577s 13 2.82x
💻 Local Express ⚠️ missing - - - -
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.246s 1.007s 0.760s 60 1.00x
🐘 Postgres Express 0.276s (-1.5%) 1.007s (~) 0.731s 60 1.12x
🐘 Postgres Nitro 0.281s (+2.2%) 1.007s (~) 0.725s 60 1.14x
🌐 Redis Next.js (Turbopack) 0.290s 1.004s 0.714s 60 1.18x
💻 Local Next.js (Turbopack) 0.555s 1.004s 0.450s 60 2.25x
💻 Local Nitro 0.590s (-1.8%) 1.005s (~) 0.415s 60 2.39x
💻 Local Express ⚠️ missing - - - -
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.474s (-2.6%) 1.007s (~) 0.533s 90 1.00x
🐘 Postgres Express 0.495s (~) 1.007s (~) 0.512s 90 1.04x
🐘 Postgres Next.js (Turbopack) 0.495s 1.006s 0.511s 90 1.05x
🌐 Redis Next.js (Turbopack) 1.128s 2.006s 0.878s 45 2.38x
💻 Local Next.js (Turbopack) 2.605s 3.008s 0.403s 30 5.50x
💻 Local Nitro 2.624s (+3.0%) 3.043s (+1.1%) 0.418s 30 5.54x
💻 Local Express ⚠️ missing - - - -
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.758s 1.006s 0.248s 120 1.00x
🐘 Postgres Nitro 0.776s (+1.7%) 1.007s (~) 0.231s 120 1.02x
🐘 Postgres Express 0.800s (+2.3%) 1.009s (~) 0.209s 119 1.05x
🌐 Redis Next.js (Turbopack) 2.650s 3.007s 0.357s 40 3.49x
💻 Local Next.js (Turbopack) 10.800s 11.299s 0.499s 11 14.24x
💻 Local Nitro 11.160s (-1.5%) 11.757s (-2.3%) 0.597s 11 14.72x
💻 Local Express ⚠️ missing - - - -
Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 0.174s 1.001s 0.001s 1.007s 0.833s 10 1.00x
💻 Local Next.js (Turbopack) 0.174s 1.003s 0.012s 1.018s 0.843s 10 1.00x
🐘 Postgres Next.js (Turbopack) 0.190s 1.001s 0.002s 1.009s 0.819s 10 1.09x
🐘 Postgres Nitro 0.214s (-9.3% 🟢) 0.999s (+0.6%) 0.001s (-81.0% 🟢) 1.011s (~) 0.796s 10 1.23x
💻 Local Nitro 0.215s (+6.4% 🔺) 1.004s (~) 0.013s (+8.5% 🔺) 1.019s (~) 0.804s 10 1.23x
🐘 Postgres Express 0.220s (+5.6% 🔺) 0.995s (~) 0.002s (+13.3% 🔺) 1.011s (~) 0.792s 10 1.26x
💻 Local Express ⚠️ missing - - - - -
stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 0.480s 1.002s 0.003s 1.010s 0.530s 60 1.00x
🐘 Postgres Next.js (Turbopack) 0.602s 1.009s 0.006s 1.023s 0.421s 59 1.25x
🐘 Postgres Nitro 0.614s (+2.9%) 1.004s (~) 0.004s (-3.0%) 1.022s (~) 0.408s 59 1.28x
🐘 Postgres Express 0.620s (+2.7%) 1.005s (~) 0.009s (+128.5% 🔺) 1.027s (~) 0.407s 59 1.29x
💻 Local Next.js (Turbopack) 0.690s 1.012s 0.010s 1.025s 0.335s 59 1.44x
💻 Local Nitro 0.826s (+14.0% 🔺) 1.011s (~) 0.010s (+15.0% 🔺) 1.116s (+9.0% 🔺) 0.289s 54 1.72x
💻 Local Express ⚠️ missing - - - - -
10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 0.892s 1.000s 0.000s 1.004s 0.112s 60 1.00x
🐘 Postgres Next.js (Turbopack) 0.935s 1.091s 0.000s 1.098s 0.163s 55 1.05x
🐘 Postgres Nitro 0.938s (-1.6%) 1.085s (-1.6%) 0.000s (-67.3% 🟢) 1.097s (-1.9%) 0.159s 56 1.05x
🐘 Postgres Express 0.983s (+1.5%) 1.306s (+3.0%) 0.000s (+Infinity% 🔺) 1.336s (+3.9%) 0.354s 45 1.10x
💻 Local Nitro 1.230s (~) 2.021s (~) 0.000s (-56.3% 🟢) 2.023s (~) 0.793s 30 1.38x
💻 Local Next.js (Turbopack) 1.330s 2.020s 0.000s 2.023s 0.693s 30 1.49x
💻 Local Express ⚠️ missing - - - - -
fan-out fan-in 10 streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 1.555s 2.002s 0.000s 2.006s 0.452s 30 1.00x
🐘 Postgres Nitro 1.743s (-8.2% 🟢) 2.107s (-10.1% 🟢) 0.000s (-100.0% 🟢) 2.151s (-8.7% 🟢) 0.409s 28 1.12x
🐘 Postgres Next.js (Turbopack) 1.788s 2.106s 0.000s 2.127s 0.339s 29 1.15x
🐘 Postgres Express 1.793s (+3.6%) 2.138s (+1.8%) 0.000s (-48.2% 🟢) 2.153s (+1.8%) 0.359s 28 1.15x
💻 Local Nitro 3.560s (+3.0%) 4.036s (~) 0.001s (~) 4.039s (~) 0.479s 15 2.29x
💻 Local Next.js (Turbopack) 3.874s 4.391s 0.001s 4.395s 0.520s 14 2.49x
💻 Local Express ⚠️ missing - - - - -

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Next.js (Turbopack) 17/21
🐘 Postgres Next.js (Turbopack) 15/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 21/21
Next.js (Turbopack) 🌐 Redis 11/21
Nitro 🐘 Postgres 19/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 6, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 846 0 67 913
✅ 💻 Local Development 818 0 178 996
✅ 📦 Local Production 818 0 178 996
✅ 🐘 Local Postgres 818 0 178 996
✅ 🪟 Windows 75 0 8 83
❌ 🌍 Community Worlds 134 64 24 222
✅ 📋 Other 207 0 42 249
Total 3716 64 675 4455

❌ Failed Tests

🌍 Community Worlds (64 failed)

mongodb (4 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KNJ6DWR4VTTWRKX71GEP47YT
  • webhookWorkflow | wrun_01KNJ6E5CJKXRC90FC2WCBQ52N
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KNJ6P0597PS4GF1J9QVJNDCQ
  • resilient start: addTenWorkflow completes when run_created returns 500

redis (3 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KNJ6DWR4VTTWRKX71GEP47YT
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KNJ6P0597PS4GF1J9QVJNDCQ
  • resilient start: addTenWorkflow completes when run_created returns 500

turso (57 failed):

  • addTenWorkflow | wrun_01KNJ6CJY7T2P6S0QFT7TA7J2C
  • addTenWorkflow | wrun_01KNJ6CJY7T2P6S0QFT7TA7J2C
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KNJ6EPFBN0W9NFZ7MJV399AS
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KNJ6CTFJF5TFF51B4B9PMYBP
  • promiseRaceWorkflow | wrun_01KNJ6CZ7BQHBRFG1ENPNJ2JZ9
  • promiseAnyWorkflow | wrun_01KNJ6D1KTN29N136BVE5941VS
  • importedStepOnlyWorkflow | wrun_01KNJ6F0N72CNGNP543S78PBB7
  • hookWorkflow | wrun_01KNJ6DGNAQNZYTH5TS5T0GW06
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KNJ6DWR4VTTWRKX71GEP47YT
  • webhookWorkflow | wrun_01KNJ6E5CJKXRC90FC2WCBQ52N
  • sleepingWorkflow | wrun_01KNJ6EC3N1R30VQ3HBAVE0Z9V
  • parallelSleepWorkflow | wrun_01KNJ6ER083X0YMMF06JQNY2K7
  • nullByteWorkflow | wrun_01KNJ6EVG3K2HADRCRRJDD935Y
  • workflowAndStepMetadataWorkflow | wrun_01KNJ6EXT9HRKXNEKRD5MMM3CN
  • fetchWorkflow | wrun_01KNJ6HJQNPV16DYFB2VXAXGYP
  • promiseRaceStressTestWorkflow | wrun_01KNJ6HPHTA15P824MCZ4DBMCF
  • error handling error propagation workflow errors nested function calls preserve message and stack trace
  • error handling error propagation workflow errors cross-file imports preserve message and stack trace
  • error handling error propagation step errors basic step error preserves message and stack trace
  • error handling error propagation step errors cross-file step error preserves message and function names in stack
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior FatalError fails immediately without retries
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • error handling retry behavior maxRetries=0 disables retries
  • error handling catchability FatalError can be caught and detected with FatalError.is()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KNJ6NAPBQ7VYXP5SFR19XX7Q
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KNJ6P0597PS4GF1J9QVJNDCQ
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KNJ6PPY71Z118QDWBXJ78Y6H
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KNJ6QBEW6VXGQC6H67XQAP5S
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KNJ6QP4J0QTBSVQ28WV11CHE
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KNJ6QW3TZAX3T5X1C5FVVF8T
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KNJ6QYDCP50Y8FJ9RPSBS7E3
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KNJ6RECDQYT5N49GPX43QMRN
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KNJ6RMCSFGM57F5ZSZ4C7B88
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KNJ6RVS0BTC5VJVZ0Y36DQKG
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KNJ6S2MBV6T04VAWSY7PMCFR
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KNJ6S9XVADY556DM8VYQGKQP
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KNJ6SH12SQ7SCQK264091PY3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KNJ6SR1NX4M2QVHBC1024FAA
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KNJ6T4T82XNH1MMRWT1H18K0
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KNJ6TCZ5KVA09PAXRE0HKT3G
  • cancelRun - cancelling a running workflow | wrun_01KNJ6TMQA9FGVAZ8V40JB7JMY
  • cancelRun via CLI - cancelling a running workflow | wrun_01KNJ6TY7VT0S8EWGQ4QSTVXA2
  • pages router addTenWorkflow via pages router
  • pages router promiseAllWorkflow via pages router
  • pages router sleepingWorkflow via pages router
  • hookWithSleepWorkflow - hook payloads delivered correctly with concurrent sleep | wrun_01KNJ6VAWNCYYQYD2RQVCT819S
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KNJ6W0VPMYYE4C3JW1HCW6B4
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KNJ6WCSDHH4M93RTJAQQSCTV
  • importMetaUrlWorkflow - import.meta.url is available in step bundles
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577)
  • resilient start: addTenWorkflow completes when run_created returns 500

Details by Category

✅ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 76 0 7
✅ example 76 0 7
✅ express 76 0 7
✅ fastify 76 0 7
✅ hono 76 0 7
✅ nextjs-turbopack 81 0 2
✅ nextjs-webpack 81 0 2
✅ nitro 76 0 7
✅ nuxt 76 0 7
✅ sveltekit 76 0 7
✅ vite 76 0 7
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 69 0 14
✅ express-stable 69 0 14
✅ fastify-stable 69 0 14
✅ hono-stable 69 0 14
✅ nextjs-turbopack-canary 58 0 25
✅ nextjs-turbopack-stable 75 0 8
✅ nextjs-webpack-canary 58 0 25
✅ nextjs-webpack-stable 75 0 8
✅ nitro-stable 69 0 14
✅ nuxt-stable 69 0 14
✅ sveltekit-stable 69 0 14
✅ vite-stable 69 0 14
✅ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 69 0 14
✅ express-stable 69 0 14
✅ fastify-stable 69 0 14
✅ hono-stable 69 0 14
✅ nextjs-turbopack-canary 58 0 25
✅ nextjs-turbopack-stable 75 0 8
✅ nextjs-webpack-canary 58 0 25
✅ nextjs-webpack-stable 75 0 8
✅ nitro-stable 69 0 14
✅ nuxt-stable 69 0 14
✅ sveltekit-stable 69 0 14
✅ vite-stable 69 0 14
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 69 0 14
✅ express-stable 69 0 14
✅ fastify-stable 69 0 14
✅ hono-stable 69 0 14
✅ nextjs-turbopack-canary 58 0 25
✅ nextjs-turbopack-stable 75 0 8
✅ nextjs-webpack-canary 58 0 25
✅ nextjs-webpack-stable 75 0 8
✅ nitro-stable 69 0 14
✅ nuxt-stable 69 0 14
✅ sveltekit-stable 69 0 14
✅ vite-stable 69 0 14
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 75 0 8
❌ 🌍 Community Worlds
App Passed Failed Skipped
✅ mongodb-dev 5 0 0
❌ mongodb 57 4 8
✅ redis-dev 5 0 0
❌ redis 58 3 8
✅ turso-dev 5 0 0
❌ turso 4 57 8
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 69 0 14
✅ e2e-local-postgres-nest-stable 69 0 14
✅ e2e-local-prod-nest-stable 69 0 14

📋 View full workflow run

johnlindquist added a commit that referenced this pull request Apr 6, 2026
- Remove type signature code blocks from fatal-error.mdx and
  retryable-error.mdx (match pattern used by other API ref pages)
- Use HookNotFoundError.is() static method instead of fragile
  string-based error.name checks in resume-hook.mdx examples
- Distinguish 404 (hook not found) from 500 (other errors) in
  define-hook.mdx resume example
- Remove dataDir from with-workflow.mdx options table (unused option,
  removal PR: #1619)
johnlindquist added a commit that referenced this pull request Apr 6, 2026
- Remove type signature code blocks from fatal-error.mdx and
  retryable-error.mdx (match pattern used by other API ref pages)
- Use HookNotFoundError.is() static method instead of fragile
  string-based error.name checks in resume-hook.mdx examples
- Distinguish 404 (hook not found) from 500 (other errors) in
  define-hook.mdx resume example
- Remove dataDir from with-workflow.mdx options table (unused option,
  removal PR: #1619)
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