Key details

  1. Workers Free includes 5 million D1 rows read per day.
  2. Workers Free includes 100,000 D1 rows written per day.
  3. After either daily limit is exceeded, D1 queries fail until midnight UTC.
  4. The enforcement applies to Workers Binding API and REST API queries.
  5. Stored data is unaffected when the daily query allowance is exhausted.
  6. Cloudflare recommends adding indexes and eliminating full table scans before upgrading.
  7. Workers Paid removes the free-tier daily ceilings and moves usage into monthly included quantities plus metered overage.

What builders should take away

  1. Inspect D1 row-read and row-write usage now rather than waiting for the first hard failure.
  2. Add indexes to queries that scan large tables and verify query plans for common hot paths.
  3. Handle D1 limit errors explicitly so a quota event does not become an opaque application crash.
  4. If a production workload regularly approaches the free ceiling, compare Workers Paid economics before traffic forces an emergency upgrade.
  5. Remember that the limit is account-level daily usage, so multiple D1-backed features can contribute to the same threshold.

What changed

Beginning September 1, 2026, Cloudflare D1 on the Workers Free plan rejects queries after the account reaches its daily row-read or row-write allowance. The current free allocation is 5 million rows read per day and 100,000 rows written per day. Queries through both Workers bindings and the REST API return limit-exceeded errors until the quota resets at midnight UTC. Stored data is not deleted or made unavailable, and Cloudflare sends email alerts when the threshold is reached.

Why it matters

This turns a pricing-table number into an availability constraint. Small apps, prototypes and indie services can now fail at runtime because an unindexed query or sudden traffic burst burns through a daily row budget. Builders using D1’s free tier need to treat query efficiency and limit handling as production concerns rather than assuming the database will continue serving and simply report high usage.

The free tier now has a real failure mode

Cloudflare had already published D1’s free allowances, but September 1 changes their operational meaning. Once an account crosses the daily row-read or row-write threshold, queries stop succeeding until the quota resets. That means a traffic spike or inefficient query can now become an application outage rather than just a dashboard warning.

Row cost matters more than request count

D1 usage is based on rows read and written, not simply the number of SQL statements. A query that scans a large table can consume far more of the allowance than a targeted indexed lookup. Cloudflare explicitly points developers toward indexes and away from full table scans as the first mitigation.

The reset model creates a recovery window

The free allowance resets at midnight UTC. Applications that hit the limit therefore need to decide whether to fail gracefully, reduce work, wait for reset or upgrade. Stored data remains intact, so the constraint is query availability rather than data loss.

Paid D1 changes the economics rather than just the ceiling

Workers Paid removes the free daily caps and uses monthly included row allowances with metered overage. Builders moving up should therefore model normal and burst usage instead of treating the upgrade as merely unlimited free-tier capacity.

What to watch next

  • Whether Cloudflare adjusts the free daily allowances after observing real-world enforcement.
  • Any new dashboard controls or programmatic alerts for approaching D1 quotas.
  • Developer reports of workloads whose query patterns consume row allowances unexpectedly quickly.

Still unclear

  • Cloudflare does not state that every account experienced identical historical over-limit behavior before September 1; the confirmed change is that enforcement is now explicit and documented.
  • Actual paid-plan cost depends on workload shape because D1 meters rows read, rows written and storage separately.

Sources

Direct reading behind this dossier.

3 sources
D1 enforces free tier daily query limits
Cloudflare Docs primary changelog

Primary source for the September 1 hard-enforcement behavior, reset timing, error handling and optimization guidance.

D1 Pricing
Cloudflare Docs primary documentation

Current free and paid row-read, row-write and storage allowances.

D1 FAQs
Cloudflare Docs primary documentation

Confirms the free-tier failure mode and paid-plan behavior after limits are reached.

Discussion

Discussion is reader-contributed. Comments are not part of the BTN dossier or its editorial evidence.

0 visible comments

Join the discussion

Keep comments useful and relevant. Reader contributions may be moderated and are not BTN editorial evidence.

Sign in to comment