From 86dc3eb9e151ee0973037ea913f7c58bd24fdfcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylvain=20Rougi=C3=A9?= <46543145+Sipixer@users.noreply.github.com> Date: Tue, 14 Jul 2026 20:19:56 +0000 Subject: [PATCH] Support workerd V8 flags via MINIFLARE_WORKERD_V8_FLAGS environment variable --- .changeset/miniflare-v8-flags-env.md | 9 +++++++++ packages/miniflare/src/index.ts | 3 +++ packages/miniflare/types/env.d.ts | 1 + 3 files changed, 13 insertions(+) create mode 100644 .changeset/miniflare-v8-flags-env.md diff --git a/.changeset/miniflare-v8-flags-env.md b/.changeset/miniflare-v8-flags-env.md new file mode 100644 index 0000000000..63fc540f47 --- /dev/null +++ b/.changeset/miniflare-v8-flags-env.md @@ -0,0 +1,9 @@ +--- +"miniflare": minor +--- + +Support passing V8 flags to `workerd` via the `MINIFLARE_WORKERD_V8_FLAGS` environment variable + +The generated `workerd` config already supports `v8Flags`, but Miniflare never populated it, so the runtime always ran with V8's default heap limit (~1.4 GB). Large dev applications (e.g. big SSR module graphs under `@cloudflare/vite-plugin`, where each server-file edit grows the runner isolate's heap) can reach that limit, at which point `workerd` aborts with `V8 fatal error; location = Reached heap limit` and every subsequent `dispatchFetch()` fails with `fetch failed` until the dev server is manually restarted. + +Setting e.g. `MINIFLARE_WORKERD_V8_FLAGS="--max-old-space-size=4096"` raises the limit and keeps long dev sessions alive. The variable follows the same space-separated format as `MINIFLARE_WORKERD_AUTOGATES`. diff --git a/packages/miniflare/src/index.ts b/packages/miniflare/src/index.ts index 0b7e3ecd6e..a34e0aae7d 100644 --- a/packages/miniflare/src/index.ts +++ b/packages/miniflare/src/index.ts @@ -2456,6 +2456,9 @@ export class Miniflare { autogates: process.env.MINIFLARE_WORKERD_AUTOGATES ? process.env.MINIFLARE_WORKERD_AUTOGATES.split(" ") : [], + v8Flags: process.env.MINIFLARE_WORKERD_V8_FLAGS + ? process.env.MINIFLARE_WORKERD_V8_FLAGS.split(" ") + : [], }; } diff --git a/packages/miniflare/types/env.d.ts b/packages/miniflare/types/env.d.ts index bfb7c05362..31c96c76ab 100644 --- a/packages/miniflare/types/env.d.ts +++ b/packages/miniflare/types/env.d.ts @@ -6,5 +6,6 @@ declare namespace NodeJS { MINIFLARE_WORKERD_CONFIG_DEBUG?: string; MINIFLARE_ASSERT_BODIES_CONSUMED?: "true"; MINIFLARE_WORKERD_AUTOGATES?: string; + MINIFLARE_WORKERD_V8_FLAGS?: string; } }