Source-linked reports: Amounts and outcomes come from the original reports and linked replies.
D1 row reads: a $134.14 invoice from unindexed queries.
Justin Ahinon reports that his April 21, 2026 Cloudflare invoice was $134.14, with $127.60 from 127,599,130,859 D1 row reads on a 765,000-row database. He attributes it to full table scans in queries that ran on every page load.
What happened
- Reported cause
- Read volume
- Incident date
- Date not recorded
- First reported
- 2026-04-25
Latest reported outcome
The author projects about a 95% reduction in row reads after adding indexes and running ANALYZE, and then describes adding a KV cache to read-heavy routes.
View this update in the timelineOriginal sources
Each entry links to the report or reply it describes.
Case timeline
D1 invoice and row reads reported
Open original sourceThe author reports a $134.14 invoice, $127.60 of it from about 127.6 billion D1 row reads, after previous bills of a dollar or two. He links it to unindexed queries in a layout that ran on every page and describes indexes, ANALYZE and KV caching as fixes.
More to read
Cloudflare billing pitfalls thread
The author organizes Cloudflare billing risks by product and shares experience with budget alert emails.
Sitemap polling: the author reports a $100 Cloudflare bill alongside AWS costs.
@enzyme_dev says a refactor made Workers fetch a sitemap every five seconds. In an October 6 reply, he reports a $100 Cloudflare bill and an AWS bill above $800 for the previous week.
Four layers of cost protection for small Cloudflare projects
David Z (@davezfr) writes an X article for vibe coders on budget alerts, stop conditions for paid paths, automatic pausing, and letting a personal agent verify and pause.