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.

Subscribe to RSS

2026-10-22

  • Hyperdrive bindings expose ip, and node:dns resolves 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

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.
  • Uint8Array type 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

2025-06-04

  • Updated v8 to version 13.8.

2025-05-27

  • Historically, in some cases, the same instance of ctx would 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 flag nonclass_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 new nodejs_compat_populate_process_env compatibility flag will cause process.env to 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:
  • 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

2024-08-15

  • Updated v8 to version 12.8.
  • You can now use Promise.try() in Cloudflare Workers. Refer to tc39/proposal-promise-try for more context on this API that has recently been added to the JavaScript language.

2024-08-14

  • When using the nodejs_compat_v2 compatibility flag, the setImmediate(fn) API from Node.js is now available at the global scope.
  • The internal_writable_stream_abort_clears_queue compatibility flag will ensure that certain WritableStream abort() 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

2024-07-18

  • Added a new truncated flag 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:crypto implementation 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

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: true property if the exception was likely due to a transient failure, or populated with an .overloaded: true property 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=true query parameter can be specified to proceed with the rollback.

2024-06-19

  • When using nodejs_compat compatibility flag, the buffer module now has an implementation of isAscii() and isUtf8() methods.
  • Fixed a bug where exceptions propagated from JS RPC calls to Durable Objects would lack the .remote property that exceptions from fetch() 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

2024-05-17

  • Updated v8 to version 12.6.

2024-05-15

  • The new fetch_standard_url compatibility flag will become active by default on June 3rd, 2024 and ensures that URLs passed into the fetch(...) API, the new Request(...) constructor, and redirected requests will be parsed using the standard WHATWG URL parser.
  • DigestStream is now more efficient and exposes a new bytesWritten property 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_type compatibility flag.

2024-05-03

  • Fixed RPC to/from Durable Objects not honoring the output gate.
  • The internal_stream_byob_return_view compatibility flag can be used to improve the standards compliance of the ReadableStreamBYOBReader implementation when working with BYOB streams provided by the runtime (like in response.body or request.body). The flag ensures that the final read result will always include a value field whose value is set to an empty Uint8Array whose underlying ArrayBuffer is the same memory allocation as the one passed in on the call to read().
  • 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 desiredSize and 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 storageClass option. 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