- Changelog (33)
- 2026-10-22
- 2026-09-28
- 2026-09-14
- 2026-08-28
- 2026-08-20
- 2026-08-18
- 2026-07-16
- 2026-06-04
- 2026-05-13
- 2026-04-27
- 2026-04-17
- 2026-03-20
- 2026-01-29
- 2026-01-13
- 2025-12-19
- 2025-11-25
- 2025-10-25
- 2025-10-22
- 2025-10-17
- 2025-09-18
- 2025-09-11
- 2025-08-21
- 2025-08-14
- 2025-08-11
- 2025-06-27
- 2025-06-23
- 2025-06-04
- 2025-05-27
- 2025-05-22
- 2025-05-20
- 2025-04-16
- 2025-04-14
- 2025-04-03
- 2025-03-27
- 2025-02-28
- 2025-02-26
- 2025-02-13
- 2025-02-11
- 2025-01-31
- 2025-01-15
- 2025-01-14
- 2024-12-19
- 2024-11-18
- 2024-11-12
- 2024-11-08
- 2024-10-21
- 2024-10-14
- 2024-09-26
- 2024-09-20
- 2024-09-19
- 2024-09-16
- 2024-08-19
- 2024-08-15
- 2024-08-14
- 2024-07-19
- 2024-07-18
- 2024-07-17
- 2024-07-03
- 2024-07-01
- 2024-06-28
- 2024-06-24
- 2024-06-20
- 2024-06-19
- 2024-06-12
- 2024-06-03
- 2024-05-17
- 2024-05-15
- 2024-05-13
- 2024-05-03
- 2024-04-26
- 2024-04-11
- 2024-04-05
Changelog (33)
Last updated Apr 23, 2026 This changelog details meaningful changes made to Workers across the Cloudflare dashboard, Wrangler, the API, and the workerd runtime. These changes are not configurable.
This is different from compatibility dates and compatibility flags, which let you explicitly opt-in to or opt-out of specific changes to the Workers Runtime.
2026-10-22
- Hyperdrive bindings expose
ip, andnode:dnsresolves a binding's host to it. - Workers traces now include spans for
queue.metrics()calls.
2026-09-28
- Updated v8 to version 15.5.
2026-09-14
- Updated v8 to version 15.4.
2026-08-28
- Updated v8 to version 15.3.
2026-08-20
- Increased the Durable Object Dynamic Worker concurrency limit from 4 to 10.
2026-08-18
- Updated v8 to version 15.2.
2026-07-16
- Updated v8 to version 15.1.
2026-06-04
- Updated v8 to version 15.0.
2026-05-13
- Fixed a regression where passing an array for to/cc/bcc on the SendEmail builder produced "Invalid email address" errors.
2026-04-27
- Updated v8 to version 14.8.
2026-04-17
- Updated v8 to version 14.7.
- Allow passing custom limits for dynamic workers.
2026-03-20
- Updated v8 to version 14.6.
2026-01-29
- Updated v8 to version 14.5.
2026-01-13
- Updated v8 to version 14.4.
2025-12-19
- Allow null name when creating dynamic workers.
2025-11-25
- Updated v8 to version 14.3.
2025-10-25
- The maximum WebSocket message size limit has been increased from 1 MiB to 32 MiB.
2025-10-22
- Warnings which were previously only visible via the devtools console in preview sessions are now also sent to the tail Worker, if one is attached.
2025-10-17
- Updated v8 to version 14.2.
- Backported an optimization to
JSON.parse(). More details are available in this blog post and the upstream patch.
2025-09-18
- Updated v8 to version 14.1.
2025-09-11
- The node:fs and Web File System APIs are now available within Workers.
2025-08-21
- Updated v8 to version 14.0.
Uint8Arraytype in JavaScript now supports base64 and hex operations.
2025-08-14
- Enable V8 Sandbox for improved isolation and security.
2025-08-11
- The MessageChannel and MessagePort APIs are now available in Workers.
2025-06-27
- Updated v8 to version 13.9.
2025-06-23
- Enable FinalizationRegistry API. See We shipped FinalizationRegistry in Workers: why you should never use it for details.
2025-06-04
- Updated v8 to version 13.8.
2025-05-27
- Historically, in some cases, the same instance of
ctxwould be passed to multiple invocations of the event handler. We now always pass a new object for each event. We made this change retroactive to all compatibility dates because we suspect it fixes security bugs in some workers and does not break any worker. However, the old behavior can be restored using the compat flagnonclass_entrypoint_reuses_ctx_across_invocations.
2025-05-22
- Enabled explicit resource context management and support for Float16Array
2025-05-20
- Updated v8 to version 13.7.
2025-04-16
- Updated v8 to version 13.6.
2025-04-14
- JSRPC message size limit has been increased to 32MiB.
2025-04-03
- Websocket client exceptions are now JS exceptions rather than internal errors.
2025-03-27
- Updated v8 to version 13.5.
2025-02-28
- Updated v8 to version 13.4.
- When using
nodejs_compat, the newnodejs_compat_populate_process_envcompatibility flag will causeprocess.envto be automatically populated with text bindings configured for the worker.
2025-02-26
- Workers Builds now supports building projects that use pnpm 10 as the package manager. If your build previously failed due to this unsupported version, retry your build. No config changes needed.
2025-02-13
- Smart Placement no longer runs Workers in the same location as D1 databases they are bound to. The same placement logic now applies to all Workers that use Smart Placement, regardless of whether they use D1 bindings.
2025-02-11
- When Workers generate an "internal error" exception in response to certain failures, the exception message may provide a reference ID that customers can include in support communication for easier error identification. For example, an exception with the new message might look like:
internal error; reference = 0123456789abcdefghijklmn.
2025-01-31
- Updated v8 to version 13.3.
2025-01-15
- The runtime will no longer reuse isolates across worker versions even if the code happens to be identical. This "optimization" was deemed more confusing than it is worth.
2025-01-14
- Updated v8 to version 13.2.
2024-12-19
- Cloudflare GitHub App Permissions Update
- Cloudflare is requesting updated permissions for the Cloudflare GitHub App to enable features like automatically creating a repository on your GitHub account and deploying the new repository for you when getting started with a template. This feature is coming out soon to support a better onboarding experience.
- Requested permissions:
- Repository Administration (read/write) to create repositories.
- Contents (read/write) to push code to the created repositories.
- Who is impacted:
- Existing users will be prompted to update permissions when GitHub sends an email with subject "[GitHub] Cloudflare Workers & Pages is requesting updated permission" on December 19th, 2024.
- New users installing the app will see the updated permissions during the connecting repository process.
- Action: Review and accept the permissions update to use upcoming features. If you decline or take no action, you can continue connecting repositories and deploying changes via the Cloudflare GitHub App as you do today, but new features requiring these permissions will not be available.
- Questions? Visit #github-permissions-update in the Cloudflare Developers Discord.
2024-11-18
- Updated v8 to version 13.1.
2024-11-12
- Fixes exception seen when trying to call deleteAll() during a SQLite-backed Durable Object's alarm handler.
2024-11-08
- Update SQLite to version 3.47.
2024-10-21
- Fixed encoding of WebSocket pong messages when talking to remote servers. Previously, when a Worker made a WebSocket connection to an external server, the server may have prematurely closed the WebSocket for failure to respond correctly to pings. Client-side connections were not affected.
2024-10-14
- Updated v8 to version 13.0.
2024-09-26
- You can now connect your GitHub or GitLab repository to an existing Worker to automatically build and deploy your changes when you make a git push with Workers Builds.
2024-09-20
- Workers now support the [
handle_cross_request_promise_resolution] compatibility flag which addresses certain edge cases around awaiting and resolving promises across multiple requests.
2024-09-19
- Revamped Workers and Pages UI settings to simplify the creation and management of project configurations. For bugs and general feedback, please submit this form.
2024-09-16
- Updated v8 to version 12.9.
2024-08-19
- Workers now support the
allow_custom_portscompatibility flag which enables using thefetch()calls to custom ports.
2024-08-15
- Updated v8 to version 12.8.
- You can now use
Promise.try()in Cloudflare Workers. Refer totc39/proposal-promise-tryfor more context on this API that has recently been added to the JavaScript language.
2024-08-14
- When using the
nodejs_compat_v2compatibility flag, thesetImmediate(fn)API from Node.js is now available at the global scope. - The
internal_writable_stream_abort_clears_queuecompatibility flag will ensure that certainWritableStreamabort()operations are handled immediately rather than lazily, ensuring that the stream is appropriately aborted when the consumer of the stream is no longer active.
2024-07-19
- Workers with the mTLS binding now support Gradual Deployments.
2024-07-18
- Added a new
truncatedflag to Tail Worker events to indicate when the event buffer is full and events are being dropped.
2024-07-17
- Updated v8 to version 12.7.
2024-07-03
- The
node:cryptoimplementation now includes the scrypt(...) and scryptSync(...) APIs. - Workers now support the standard EventSource API.
- Fixed a bug where when writing to an HTTP Response body would sometimes hang when the client disconnected (and sometimes throw an exception). It will now always throw an exception.
2024-07-01
- When using Gradual Deployments, you can now use version overrides to send a request to a specific version of your Worker.
2024-06-28
- Fixed a bug which caused
Date.now()to return skewed results if called before the first I/O of the first request after a Worker first started up. The value returned would be offset backwards by the amount of CPU time spent starting the Worker (compiling and running global scope), making it seem like the first I/O (e.g. first fetch()) was slower than it really was. This skew had nothing to do with Spectre mitigations; it was simply a longstanding bug.
2024-06-24
- Exceptions thrown from Durable Object internal operations and tunneled to the caller may now be populated with a
.retryable: trueproperty if the exception was likely due to a transient failure, or populated with an.overloaded: trueproperty if the exception was due to overload.
2024-06-20
- We now prompt for extra confirmation if attempting to rollback to a version of a Worker using the Deployments API where the value of a secret is different than the currently deployed version. A
?force=truequery parameter can be specified to proceed with the rollback.
2024-06-19
- When using
nodejs_compatcompatibility flag, thebuffermodule now has an implementation ofisAscii()andisUtf8()methods. - Fixed a bug where exceptions propagated from JS RPC calls to Durable Objects would lack the
.remoteproperty that exceptions fromfetch()calls to Durable Objects have.
2024-06-12
- Blob and Body objects now include a new
bytes()method, reflecting recent additions to web standards.
2024-06-03
- Workers with Smart Placement enabled now support Gradual Deployments.
2024-05-17
- Updated v8 to version 12.6.
2024-05-15
- The new
fetch_standard_urlcompatibility flag will become active by default on June 3rd, 2024 and ensures that URLs passed into thefetch(...)API, thenew Request(...)constructor, and redirected requests will be parsed using the standard WHATWG URL parser. - DigestStream is now more efficient and exposes a new
bytesWrittenproperty that indicates that number of bytes written to the digest.
2024-05-13
- Updated v8 to version 12.5.
- A bug in the fetch API implementation would cause the content type of a Blob to be incorrectly set. The fix is being released behind a new
blob_standard_mime_typecompatibility flag.
2024-05-03
- Fixed RPC to/from Durable Objects not honoring the output gate.
- The
internal_stream_byob_return_viewcompatibility flag can be used to improve the standards compliance of theReadableStreamBYOBReaderimplementation when working with BYOB streams provided by the runtime (like inresponse.bodyorrequest.body). The flag ensures that the final read result will always include avaluefield whose value is set to an emptyUint8Arraywhose underlyingArrayBufferis the same memory allocation as the one passed in on the call toread(). - The Web platform standard
reportError(err)global API is now available in workers. The reported error will first be emitted as an 'error' event on the global scope then reported in both the console output and tail worker exceptions by default.
2024-04-26
- Updated v8 to version 12.4.
2024-04-11
- Improve Streams API spec compliance by exposing
desiredSizeand other properties on stream class prototypes - The new
URL.parse(...)method is implemented. This provides an alternative to the URL constructor that does not throw exceptions on invalid URLs. - R2 bindings objects now have a
storageClassoption. This can be set on object upload to specify the R2 storage class - Standard or Infrequent Access. The property is also returned with object metadata.
2024-04-05
- A new JavaScript-native remote procedure call (RPC) API is now available, allowing you to communicate more easily across Workers and between Workers and Durable Objects.
