Persistence options consolidated; live reload, fetchMock removed
miniflare@5.20260730.0-alpha
Major Changes
-
#14586
5a56ddaThanks @emily-shen! - Consolidate persistence and temporary directory optionsThe per-resource persistence options (
kvPersist,r2Persist,d1Persist,cachePersist,durableObjectsPersist,workflowsPersist,secretsStorePersist,analyticsEngineDatasetsPersist,streamPersist,imagesPersist, andhelloWorldPersist) have been removed. TheMiniflare.unsafeGetPersistPaths()method, which provided the per-resource persistence paths, has also been removed as they can now be stably inferred from the base path.For consistency and clarity,
defaultPersistRootanddefaultProjectTmpPathhave been renamed toresourcePersistencePathandresourceTmpPath, respectively.For example:
new Miniflare({ resourcePersistencePath: ".wrangler/state/v3", resourceTmpPath: ".wrangler/tmp", });When
resourcePersistencePathis set, each resource persists to a subdirectory named after its plugin (e.g..wrangler/state/v3/kv). When it is omitted, resources are ephemeral and their data is cleared on dispose. -
#14586
5a56ddaThanks @emily-shen! - Remove thecacheWarnUsageoptionThe
cacheWarnUsageWorker option, which logged a warning when cache operations were used, has been removed. -
#14586
5a56ddaThanks @emily-shen! - Remove thefetchMockoption andcreateFetchMockexport -
#14586
5a56ddaThanks @emily-shen! - Remove thehttpsKeyPathandhttpsCertPathoptionsThe
httpsKeyPathandhttpsCertPathoptions have been removed. To use a custom certificate, read the files and pass their contents via the existinghttpsKeyandhttpsCertoptions. -
#14586
5a56ddaThanks @emily-shen! - Drop/cdn-cgi/mf/reloadlive reload endpoint andliveReloadoptionThe built-in live reload mechanism has been removed from Miniflare. This included a WebSocket endpoint at
/cdn-cgi/mf/reload, theliveReloadoption, and the automatic injection of a live reload<script>tag into HTML responses. For context, Wrangler and the Vite plugin both implement their own independent live reload mechanisms. -
#14586
5a56ddaThanks @emily-shen! - Drop miniflare v2 storage migrationThe
migrateDatabase()helper that migrated KV, R2, and D1 SQLite databases from the miniflare v2/early-v3 storage layout to the current Durable Object-based layout has been removed. This migration path was introduced in 2023 and is no longer needed. -
#14586
5a56ddaThanks @emily-shen! - Only support structured workerd logsThe
handleRuntimeStdiooption (for handling the rawworkerdstdout/stderr streams) and thestructuredWorkerdLogsoption (for toggling structuredworkerdlogs) have been removed. Structured logging is now always enabled.To receive
workerd's output, usehandleStructuredLogs, which is passed parsed structured log entries. When nohandleStructuredLogshandler is provided, logs are written to the console by default (warn/errorto stderr, everything else to stdout). -
#14586
5a56ddaThanks @emily-shen! - Drop theunsafeStickyBlobsoptionThis prevented blob files from being deleted when overwriting or deleting keys, and only existed to support the Durable Object isolated storage feature in
@cloudflare/vitest-pool-workers, which was removed in 0.13.0. Blobs are now always cleaned up as expected. -
#14586
5a56ddaThanks @emily-shen! - Remove thewrappedBindingsoption -
#14586
5a56ddaThanks @emily-shen! - MovecontainerEnginefrom a per-worker option to a top-level optioncontainerEngineis now a top-level Miniflare option rather than a per-worker option, reflecting that it configures a single container engine for the whole Miniflare instance.new Miniflare({ containerEngine: "unix:///var/run/docker.sock", workers: [{ name: "my-worker", script: "..." }], });Previously it was set inside each worker's options.
-
#14586
5a56ddaThanks @emily-shen! - MoveformatZodErrorfromminiflareto@cloudflare/workers-utilsThe
formatZodErrorand_forceColourhelpers are no longer exported fromminiflare; they are now exported from@cloudflare/workers-utils. -
#14586
5a56ddaThanks @emily-shen! - Remap local testing paths to avoid collision with production/cdn-cgiroutesAll miniflare-internal endpoints have moved to more consistent paths. Paths that need to remain reachable over tunnels now live outside
/cdn-cgi/:/cdn-cgi/platform-proxy→/cdn-cgi/local/platform-proxy/cdn-cgi/handler/scheduled→/cdn-cgi/local/scheduled/cdn-cgi/handler/email→/cdn-cgi/local/email/cdn-cgi/explorer/*→/cdn-cgi/local/explorer/*/cdn-cgi/mf/scheduled→ removed (was already deprecated)/cdn-cgi/mf/stream/*→/__cf_local/stream/*/cdn-cgi/mf/imagedelivery/*→/__cf_local/imagedelivery/*
Wrangler and the Vite plugin will add transparent path rewrites so the old paths continue to work for users of those tools.
-
#14586
5a56ddaThanks @emily-shen! - Remove deprecatedmaxRetirestypo alias in Queue consumer optionsThe
maxRetiresoption (a typo ofmaxRetries) has been removed fromQueueConsumerOptionsSchema. UsemaxRetriesinstead. -
#14586
5a56ddaThanks @emily-shen! - Remove dummy CLI binaryThe
miniflarebin entry andbootstrap.jsstub that printed a "usenpx wrangler dev" error have been removed. This stub has been present since miniflare v3 and is no longer needed. -
#14586
5a56ddaThanks @emily-shen! - Remove deprecatedsupportedCompatibilityDateexport -
#14586
5a56ddaThanks @emily-shen! - Rename thecacheWorker option tocacheAPIThe boolean option controlling whether the Cache API caches anything has been renamed from
cachetocacheAPI. This is to distinguish it from Workers Cache. -
#14586
5a56ddaThanks @emily-shen! - Upgrade to zod v4Miniflare's exported schemas now use zod v4.
Fetched July 31, 2026
