Change8

miniflare@4.20260702.0

Breaking Changes
📦 cloudflare-workersView on GitHub →
1 breaking1 features🐛 2 fixes🔧 5 symbols

Summary

This release introduces support for Queues across separate local development processes and updates local rate limiting logic to key counters by `namespace_id` for production parity. Internal dependencies were also refactored to improve ESM compatibility.

⚠️ Breaking Changes

  • Local rate limit counters are now keyed by `namespace_id` instead of binding name. If you had multiple bindings referencing the same namespace ID, they will now share a single rate limit counter locally, matching production behavior. Previously, they were treated as separate limiters.

Migration Steps

  1. Review local rate limiting setup if you relied on distinct rate limiters for bindings sharing the same `namespace_id`; they will now share a limit.
  2. If you are using internal utilities, note that Miniflare and create-cloudflare now consume shared helpers from `@cloudflare/workers-utils`, importing node-only leaf entry points like `@cloudflare/workers-utils/fs-helpers` or `@cloudflare/workers-utils/global-wrangler-config-path` when ESM bundling requires it.

✨ New Features

  • Support for Queues across separate local development processes, where messages produced before the consumer registers or while it is down are now dropped (with a debug log) instead of buffered.

🐛 Bug Fixes

  • The `reset()` function from `cloudflare:test` now correctly resets ratelimit binding state between tests, preventing stale rate-limit exhaustion state from affecting subsequent tests.
  • Fixed an issue where rate limit bindings were stripped from secondary Workers in multiworker `wrangler dev` sessions to avoid startup crashes; they are now correctly supported by keying counters by `namespace_id`.

Affected Symbols