Back to Flash News

Cloudflare Refuses to Waive Personal Project Loop Billing

A personal developer publicly shared a Cloudflare support email: the current invoice amount is $10,811.41, covering the period from September 23 to October 6, 2026, for the alarm loop in Durable Objects within Workers. Support representative Adil stated that usage-based billing only recognizes actual consumption, and the loop originates from the customer's Worker code, not from measurement or infrastructure failure, thus it cannot be waived. The invoice remains open, and the balance must still be paid.

The developer claims this is an unused test project, and as a one-person team, the amount exceeds their capacity. They have stopped using Workers, changed the alarm scheduling, and added billing alerts. The support response confirmed these are correct damage control measures and suggested lowering the alert threshold and verifying deliveries. The email concluded with a note that the response was enhanced by Cloudflare Workers AI, with the model being Kimi K2.7 from the Dark Side of the Moon.

His local session records pinpoint the trigger to Codex. The records state: Codex CLI 0.151.0, model gpt-5.6-sol, with a session on August 31 at 14:53 UTC that added a line to continuously reorder the alarm while simultaneously adding checkpointRefreshAt. Another session under the same account executed a commit at 19:30 UTC, labeled as feat: add durable hosted Pi canary, with hash f7d4fb0, involving 127 files and adding 50,211 lines. The author is shown as Aaron, as he used his local git configuration, and there is no AI signature in the commit.

Minor commits came from Claude. On September 3, hash f6d73a4a, co-signed as Claude Fable 5.1, added reusableIdleCheckpoint to reuse soon-to-expire checkpoints, making it harder for the loop to stop itself. He claimed this was not the trigger point. The outbreak occurred on September 23, due to the recorded checkpoint's lifespan of 30 days and refresh window of 7 days, with checkpoints created around August 31 entering the refresh window after 23 days.

In his post, he stated the read/write volume as 60 trillion times. This scale did not appear in the public support email, which only confirmed that the charges came from the alarm loop. The Durable Objects documentation stipulates that each object can only have one alarm at a time, with setAlarm charged per write, and the alarm must execute at least once. If the processing function throws an error, it will retry with exponential backoff, up to 6 times.

The buyer pays per line read/write on the platform, while the seller is a personal project without a hard cap on expenses. The event was driven by code reordering the alarm, not traffic. Money flowed from the test project to Durable Objects usage, benefiting the billing layer that charges based on actual consumption, while the personal developer, who has no spending limit and whose notifications do not cover line reads/writes, is under pressure. Support left the burden of proof on the customer: unless evidence of a platform-side failure is provided, the bill will not be canceled.

Similar mechanisms appeared in English forums in April this year. A developer claimed that onStart unconditionally setAlarm every time it woke up, combined with over 60 preview deployments, resulting in an 8-day bill of $34,895, peaking at about 930 billion line reads per day, with usage notifications only monitoring CPU, not Durable Objects read/writes, and the dashboard also lacking a hard spending cap.

Source: Public Information

ABAB AI Insight

The alarms for Durable Objects have been billed based on storage interfaces since 2022, with official examples requiring a prior getAlarm before setting an alarm if none exists. A public case from April 2026 ran the counterexample: unconditional reordering combined with over 60 preview instances resulted in an 8-day bill of $34,895, peaking at about 930 billion line reads per day, with notifications only covering CPU. This $10,811.41 charge follows the same pattern, with the triggering code noted by the developer in the Codex session on August 31.

Resources were not spent on user requests. The test project was unused, and the loop ran from September 23 to October 6, with the bill settled based on line reads/writes; the developer has stopped the Worker, changed scheduling, and added alerts, yet support still claims this is the correct damage control and not a reason for waiver. The commits pointed to on the Codex side involved 127 files and 50,211 lines added, with the git author being Aaron from local configuration, without AI co-signatures. Claude's September 3 commit was marked by him as a weighty item, not the starting point. The money path is the model writing the reorder, with the platform charging per execution, and the individual only becoming part of the control loop after the invoice is issued.

A comparison can be drawn to cloud vendors making serverless free tiers an entry point and treating storage operations as unlimited measurements, similar to mobile operators billing for SMS gateway loops. The industry is in an expansion phase: Cloudflare is pushing personal developers towards Durable Objects via proxies, with billing caps not synchronized. Bumble-style product changes are irrelevant; what matters is Tinder claiming that about 90% of new code is generated by AI, with humans only reviewing. If the review missed setAlarm, what was missed is an invoice billed per line.

This represents a shift in pricing power. The model compresses the price of a line reorder to nearly zero, while the platform marks each execution of that line as a write. The mechanism includes at least one execution plus failure retries, which allows erroneous scheduling to self-sustain; the 30-day lifespan and 7-day refresh window delay the August 31 patch until it enters the bill on September 23. While one thinks they are observing a test project, the billing system is monitoring lines. Without a hard cap, pricing power resides in measurement, not in the session where the code is written.

ABAB News · Cognitive Laws

  1. Code can be generated for free, while loops are priced per execution.

  2. Without a hard cap on usage, notifications will certainly come late.

  3. Signatures are on the local machine, while the bill is on the platform.