wrangler@4.112.0
Minor Changes
-
#14470
3de70dfThanks @DiogoSantoss! - Add a top-leveladdressesfield to Wrangler configuration for Email RoutingYou can now declare the inbound email addresses handled by your Worker directly in
wrangler.json:{ "name": "my-worker", "main": "src/index.ts", "compatibility_date": "2026-05-21", "addresses": ["support@example.com", "*@example.com"] } -
#14706
cb6c3f9Thanks @edmundhung! - Add Durable Object storage access tocreateTestHarness()You can now execute SQL against a SQLite-backed Durable Object to seed or assert the storage state.
const server = createTestHarness({ workers: [{ configPath: "./wrangler.json" }], }); await server.listen(); const worker = server.getWorker(); const storage = await worker.getDurableObjectStorage("COUNTER", { name: "user-123", }); await worker.fetch("/counter/user-123"); const rows = await storage.exec( "SELECT value FROM counters WHERE id = ?", "user-123" ); expect(rows).toEqual([{ value: 1 }]);
-
#14562
9f04a7eThanks @martijnwalraven! - Emit a typedruntimeErrorevent on theunstable_startWorkerDevEnv for uncaught Worker exceptionsUncaught Worker exceptions were only source-mapped and printed, so programmatic consumers had to scrape terminal output to observe them. The DevEnv now re-emits a
RuntimeErrorEvent(likereloadComplete) carrying the exception text and source-mapped stack — fed from Miniflare's pretty-error seam via the newhandleUncaughtErroroption for exceptions the runtime catches, and from the inspector for those it does not.
Patch Changes
-
#14682
d39ae01Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To @cloudflare/workers-types ^5.20260710.1 ^5.20260714.1 workerd 1.20260710.1 1.20260714.1 -
#14725
c79504fThanks @edmundhung! - Support containers increateTestHarness()Workers configured with containers can now be tested using
createTestHarness(). The harness builds configured images and makes container-backed Durable Objects available during integration tests. -
#14696
c7dbe1aThanks @martijnwalraven! - Typeunstable_startWorker,DevEnv.startWorker, andConfigController.set/patchagainstWranglerStartDevWorkerInput, so the wrangler-specificdev.structuredLogsHandlerfield the runtime already honors is expressible through the public API. Previously the public signatures took the baseStartDevWorkerInput, and callers passing the handler needed a cast while internal callers (the test harness) routed the wider type around the signature. -
#14494
4e1a7a7Thanks @petebacondarwin! - Register a workers.dev subdomain before uploading a new WorkerDeploying a Worker for the first time on an account that has no workers.dev subdomain failed with an opaque API error raised by the upload request itself (code 10063, "You need a workers.dev subdomain in order to proceed"). Wrangler now checks for a workers.dev subdomain before uploading a brand-new Worker that publishes to workers.dev and prompts you to register one, so you get a clear, actionable message instead of a cryptic API failure. The check is skipped for deploys that don't target workers.dev (routes-only deploys, or
workers_dev: false) and for existing Workers, since their account already has a subdomain. -
Updated dependencies [
34e696d,d39ae01,9f04a7e,9f04a7e,cb30df3,cb6c3f9,3f3afbb,e6fbc4e]:- miniflare@4.20260714.0