Storage Updates & Release Notes
117 updates curated from 1 source by the Releasebot Team. Last updated: Oct 5, 2026
- Oct 2, 2026
- Date parsed from source:Oct 2, 2026
- First seen by Releasebot:Oct 5, 2026
United States jurisdiction
Storage adds US jurisdiction for D1 databases to keep data running and persisting within the United States.
You can create D1 databases with the us jurisdiction. These databases run and persist data within the United States.
Use this option for regional data residency requirements.
To create a database with the us jurisdiction, run:
npx wrangler@latest d1 create db-with-us-jurisdiction --jurisdiction=usFor more information, refer to D1 data location.
Original source - Oct 2, 2026
- Date parsed from source:Oct 2, 2026
- First seen by Releasebot:Oct 3, 2026
- Modified by Releasebot:Oct 5, 2026
Workers KV namespace jurisdictions are now generally available
Storage adds general availability for Workers KV namespace jurisdictions, letting teams choose eu, us, or fedramp at creation time to keep data durably stored in a specific region for compliance needs like GDPR or FedRAMP.
Jurisdictions for Workers KV namespaces are now generally available. When you create a namespace, you can set a jurisdiction to make sure the namespace's data is only durably stored within that region. Jurisdictions can help you comply with data localization regulations such as GDPR or FedRAMP. Supported jurisdictions are eu, us, and fedramp.
A jurisdiction can only be set when a namespace is created, using the Cloudflare dashboard, Wrangler, the cf CLI, or the REST API, and cannot be added or changed afterwards.
npx wrangler@latest kv namespace create <NAMESPACE_NAME> --jurisdiction=eu cf kv namespaces create --title <NAMESPACE_NAME> --jurisdiction eu curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --header "Content-Type: application/json" \ --data '{ "title": "<NAMESPACE_NAME>", "jurisdiction": "eu" }'Workers can still access a namespace restricted to a jurisdiction from anywhere in the world, and KV data can be cached outside the jurisdiction on Cloudflare's network. The jurisdiction only controls where the namespace's data is durably stored.
To learn more, refer to Data location.
Original source All of your release notes in one feed
Join Releasebot and get updates from Cloudflare and hundreds of other software products.
- Oct 1, 2026
- Date parsed from source:Oct 1, 2026
- First seen by Releasebot:Oct 2, 2026
Basin Pipelines ingest limit increased to 1 GB/s
Storage raises Basin Pipelines stream ingestion to 1 GB/s for high-volume events, telemetry, and logs.
Each Basin Pipelines stream can now ingest up to 1 GB/s, increased from 5 MB/s.
The higher per-stream limit gives high-volume application events, telemetry, and logs more room to grow without splitting ingestion across streams solely to stay within the previous limit.
For the full list of stream, sink, and pipeline limits, refer to Basin Pipelines limits.
Original source - Oct 1, 2026
- Date parsed from source:Oct 1, 2026
- First seen by Releasebot:Oct 2, 2026
Cloudflare Basin is now generally available
Storage Basin is now generally available, bringing an end-to-end analytics platform with Pipelines, Catalog, and SQL for ingesting, managing, and querying data across apps, infrastructure, devices, and Cloudflare services.
Basin, formerly the Cloudflare Data Platform, is now generally available. Basin brings an end-to-end analytics platform to the Developer Platform, enabling you to collect data from a variety of sources, such as apps, infrastructure, devices, and other Cloudflare services, then query it to answer analytical questions.
Basin Pipelines
Basin Pipelines, formerly Cloudflare Pipelines, ingests events from Workers, HTTP endpoints, and Cloudflare Logpush. It transforms events with SQL and ingests them into Iceberg tables or files on R2. With Basin Pipelines you can:
- Ingest application and device events through HTTP endpoints or Workers bindings.
- Filter and reshape Cloudflare logs before storing them as Iceberg tables, Parquet, or JSON.
- Catch schema mismatches with typed bindings and investigate dropped events in the dashboard.
Basin Catalog
Basin Catalog, formerly R2 Data Catalog, manages and automatically maintains Apache Iceberg tables ↗︎ to keep them fast, cost-efficient, and accessible to any compatible query engine. With Basin Catalog you can:
- Connect DuckDB, Spark, Snowflake, or PyIceberg to the same tables.
- Maintain growing tables with compaction, snapshot expiration, and manifest optimization.
- Share analytical data across tools and clouds without paying egress fees.
Basin SQL
Basin SQL, formerly R2 SQL, is a serverless, distributed SQL engine for querying large Apache Iceberg tables in Basin Catalog without managing or scaling compute. With Basin SQL you can:
- Summarize and rank data with standard and approximate aggregates, grouping sets, and window functions.
- Combine and inspect datasets with joins, subqueries, common table expressions, set operations, schema discovery, and EXPLAIN.
- Transform strings, timestamps, JSON, and complex values with more than 190 functions.
Get started
To get started with creating an end-to-end data pipeline, run:
npx wrangler basin pipelines setupOr get started by referring to the Basin getting started guide.
Note
Existing Cloudflare Pipelines, R2 Data Catalog, and R2 SQL resources and configurations will continue to work and will be deprecated over time.
Original source - Oct 1, 2026
- Date parsed from source:Oct 1, 2026
- First seen by Releasebot:Oct 2, 2026
Pending I/O operations allow Durable Objects to continue long-running work without a connected client
Storage now keeps Durable Objects active during pending requests, RPC and fetch calls, waitUntil work, and timers, helping long-running tasks like agents stay in memory even after a client disconnects.
Durable Objects remain active while handling a request from a connected client. This change applies when no client is connected, such as when an agent continues a submitted job after its client disconnects.
This behavior is the default for Workers with a compatibility date of 2026-10-01 or later. To use it with an earlier date, add the durable_object_io_tasks_prevent_eviction compatibility flag. To opt out, add the durable_object_io_tasks_do_not_prevent_eviction flag.
Pending service binding requests now keep Durable Objects running while they wait for a response. Pending calls to another Durable Object through remote procedure call (RPC) or fetch(), as well as this.ctx.container.monitor(), now also keep the Durable Object running.
Promises passed to this.ctx.waitUntil() and pending setTimeout() and setInterval() timers also receive this protection.
Previously, Cloudflare could shut down an idle Durable Object while one of these operations remained pending without a connected client. This could stop unfinished work.
This change helps you run long-running tasks such as agents. An agent can call tools through service bindings, coordinate with other Durable Objects, or wait for a container process without relying on the original client to remain connected.
Outbound fetch() requests to external services, TCP sockets, and outbound WebSockets already keep Durable Objects running.
Each pending operation prevents idle shutdown for up to 15 minutes. Starting another one later can extend the Durable Object's time in memory. The limit applies to each operation, not to the total time in memory.
Duration charges continue while an operation prevents eviction.
For more information, refer to Lifecycle of a Durable Object.
Original source Similar to Storage with recent updates:
- Cloudflare AI updates169 release notes · Latest Oct 2, 2026
- ChatGPT updates230 release notes · Latest Oct 2, 2026
- Gemini updates432 release notes · Latest Oct 2, 2026
- OpenAI Models updates49 release notes · Latest Aug 18, 2026
- Claude updates151 release notes · Latest Oct 1, 2026
- Codex updates242 release notes · Latest Oct 2, 2026
- Sep 25, 2026
- Date parsed from source:Sep 25, 2026
- First seen by Releasebot:Sep 26, 2026
Subscribe to Browser Run crawl events
Storage adds Browser Run crawl job events to Cloudflare Queues for progress tracking and downstream processing.
Browser Run crawl jobs can publish lifecycle events to Cloudflare Queues. Subscribe to started, updated, and finished events to track progress or trigger downstream processing without polling.
To create an account-level subscription, run the following command:
npx wrangler queues subscription create <QUEUE_NAME> --source browserRun --events crawl.started,crawl.updated,crawl.finishedFor payload examples, refer to the Browser Run event schemas.
Original source - Sep 24, 2026
- Date parsed from source:Sep 24, 2026
- First seen by Releasebot:Sep 25, 2026
R2 bandwidth usage metrics
Storage adds an R2 Metrics page for bandwidth usage across buckets and GraphQL Analytics API metrics.
New R2 product-level Metrics page in the Cloudflare dashboard shows bandwidth usage. You can view usage across all buckets or per bucket.
Go to R2 Metrics ↗
Bandwidth throughput is split by object upload and download. The GraphQL Analytics API exposes the same bandwidth usage metrics that power the dashboard for your queries and analytics.
For more information, refer to R2 metrics and analytics.
Original source - Sep 23, 2026
- Date parsed from source:Sep 23, 2026
- First seen by Releasebot:Sep 25, 2026
Durable Object name search now supports 128 characters
Storage expands Durable Object name search in the Cloudflare dashboard to 128 characters and shows longer results in Metrics and Data Studio.
Durable Object name searches in the Cloudflare dashboard now accept up to 128 characters, up from 20.
Search results and recent invocation lists show up to 128 characters before being truncated with an ellipsis. This limit applies to the object filter on the Metrics tab and object search in Data Studio.
For more information, refer to Metrics and analytics and Data Studio.
Original source - Sep 17, 2026
- Date parsed from source:Sep 17, 2026
- First seen by Releasebot:Sep 18, 2026
- Modified by Releasebot:Sep 25, 2026
Workers traces now automatically include JavaScript RPC session spans
Storage adds Workers trace support for JavaScript RPC calls across Worker boundaries and into Durable Objects, with dashboard views for caller-side sessions, method calls, nested calls and callbacks. Tracing is enabled with one Wrangler setting and works automatically without code changes.
Workers traces can now follow JavaScript RPC calls across Worker boundaries and into Durable Objects. Previously, a trace stopped at the caller's RPC boundary. The dashboard now shows the caller-side session and method calls alongside the callee invocation, nested calls, and callbacks into another Worker.
A session span covers the lifetime of a caller-side session and groups calls that reuse it. Individual call spans show each method invocation. Execution colors distinguish the Workers or Durable Object entrypoints involved, while arrows mark outgoing and incoming calls. Together, these details show where time was spent, which calls reused a session, and how returned stubs and callbacks fit into the request.
Enable tracing with one setting in your Wrangler configuration file:
{ "observability": { "traces": { "enabled": true } } }Cloudflare records these spans automatically. You do not need to change your application code or add an observability SDK.
For supported spans and attributes, refer to Spans and attributes.
Original source - Sep 16, 2026
- Date parsed from source:Sep 16, 2026
- First seen by Releasebot:Sep 18, 2026
Hyperdrive support for Python Workers
Storage adds Hyperdrive support for Python Workers connecting to PostgreSQL and MySQL.
Python Workers can now connect to PostgreSQL and MySQL through Hyperdrive.
For setup, code examples, and limitations, refer to
Use Hyperdrive from Python Workers
.
Original source - Sep 16, 2026
- Date parsed from source:Sep 16, 2026
- First seen by Releasebot:Sep 18, 2026
R2 Data Catalog adds table maintenance visibility and manual queueing
Storage adds table-level maintenance visibility and manual compaction queueing in the Cloudflare dashboard, making it easier to review recent runs, check maintenance eligibility, and request maintenance from the table view.
R2 Data Catalog now provides table-level maintenance visibility and manual compaction queueing in the Cloudflare dashboard. These updates make it easier to understand when maintenance is eligible to run, inspect completed operations, and request maintenance without leaving the table view.
To view table maintenance details:
- In the Cloudflare dashboard, go to R2 Data Catalog.
- Select a catalog, then select the Explorer tab. The Explorer tab opens by default.
- Select a table.
- Select the Maintenance tab.
The updated dashboard includes:
- Maintenance tab — View compaction and snapshot expiration settings, schedules, and next eligibility alongside the table's Schema and Metadata tabs.
- Recent runs — Review a paginated audit log with job status, duration, and expandable details for manifest rewrites, compaction, and snapshot expiration. Expanded rows include operation metrics for each maintenance operation.
- Manual queueing — Select Queue maintenance to request compaction during normal scheduler polling. The dashboard checks permissions and explains when another maintenance job conflicts with the request or the daily accepted-request limit has been reached.
- Updated catalog layout — Find catalog metrics in the Metrics tab, use the renamed Explorer tab to browse data, and switch between table details using tabs instead of a scroll-to-section sidebar.
- Improved schema browser — For accounts with the schema browser enabled, select a namespace to open its tables in the right pane while also expanding the namespace tree. The tree can now be collapsed to provide more space for table details.
For more information about compaction and snapshot expiration, refer to Table maintenance.
Original source - Sep 4, 2026
- Date parsed from source:Sep 4, 2026
- First seen by Releasebot:Sep 11, 2026
R2 Data Access Logs
Storage adds generally available R2 Data Access Logs for bucket activity, recording reads, writes, lists, multipart uploads, and deletes across the S3-compatible API, dashboard, Workers, and public buckets, with filtering in Workers Observability.
R2 Data Access Logs are now generally available. Turn on logging for a bucket to record object read, write, list, multipart upload, and delete operations with response status codes below 400.
Data Access Logs cover requests made through the S3-compatible API, Cloudflare API and dashboard, Workers bindings, and public buckets through r2.dev or custom domains. Events are available in Workers Observability, where you can filter by bucket, operation, interface, actor, and other request fields.
Log delivery is asynchronous and best effort. Events may be delayed or omitted, so do not rely on Data Access Logs as a complete record of bucket activity.
Data Access Logs are available for non-jurisdictional buckets. For setup instructions, supported operations, and the event field reference, refer to R2 Data Access Logs.
Original source - Sep 1, 2026
- Date parsed from source:Sep 1, 2026
- First seen by Releasebot:Sep 11, 2026
D1 enforces free tier daily query limits
Storage says D1 queries on the Workers Free plan will start failing once daily row read or write limits are exceeded, with API errors, midnight UTC resets, and email alerts. It also points users to optimization and paid plans.
Beginning September 1, 2026, D1 queries on the Workers Free plan will fail when an account exceeds the daily row read or row write limits. Queries via the Workers Binding API and the REST API will return errors until the limit resets at midnight UTC. Stored data is not affected.
You will receive email alerts when the daily limit is reached. The following errors indicate that a limit has been exceeded:
Error: Your account has exceeded D1's free tier daily row read limit. Upgrade to a paid plan or wait until tomorrow (midnight UTC) to continue. Description: The account has reached its daily row read limit.
Error: Your account has exceeded D1's free tier daily row write limit. Upgrade to a paid plan or wait until tomorrow (midnight UTC) to continue. Description: The account has reached its daily row write limit.
Inspect database query activity before the enforcement date to identify queries that may exceed these limits. To reduce row reads, add indexes to tables and review queries that perform full table scans. If usage requires higher limits after optimization, upgrade to a Workers Paid plan.
For more information on D1 errors and how to handle them, refer to the D1 error list.
Original source - Aug 28, 2026
- Date parsed from source:Aug 28, 2026
- First seen by Releasebot:Aug 28, 2026
Durable Objects can use up to ten Dynamic Workers concurrently
Storage raises Durable Objects Dynamic Workers in-flight request limits to ten.
Durable Objects can have up to ten distinct Dynamic Workers with in-flight requests, increased from four. This limit applies across all concurrent requests to the same Durable Object because they share an input/output (I/O) context. Other Workers can have up to four distinct Dynamic Workers with in-flight requests per request.
Multiple in-flight requests to the same Dynamic Worker count as one toward this limit.
For more information, refer to Dynamic Workers limits.
Original source - Aug 25, 2026
- Date parsed from source:Aug 25, 2026
- First seen by Releasebot:Aug 26, 2026
- Modified by Releasebot:Aug 28, 2026
Prevent Durable Object alarm retries when using `ctx.abort()`
Storage adds retry control for Durable Object alarms with ctx.abort(), letting alarms stop with retryAlarm: false instead of restarting after reset. It also clarifies concurrent alarm behavior and keeps existing abort calls retrying by default.
By default, an alarm interrupted by ctx.abort() retries after the Durable Object resets. Pass { retryAlarm: false } when the alarm should stop instead:
import { DurableObject } from "cloudflare:workers"; export class CleanupTask extends DurableObject { async alarm() { await this.ctx.storage.deleteAll(); this.ctx.abort("Cleanup complete", { retryAlarm: false }); } }For example, an alarm that deletes its storage can use this option to avoid repeating the cleanup or re-running the Durable Object constructor.
Alarms can run concurrently with other requests to the same Durable Object. If another request calls ctx.abort() while an alarm is running, the retryAlarm option on that call also controls whether the alarm retries.
The default retry prevents an unrelated request from permanently canceling the alarm. Set retryAlarm: false on every abort path that should stop an in-progress alarm, not only on calls from the alarm handler. Existing calls to ctx.abort() keep retrying alarms.
For local development, retryAlarm requires Wrangler 4.126.0 or later.
For more information, refer to ctx.abort().
Original source
Curated by the Releasebot team
Releasebot is an aggregator of official product update announcements from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.