返回快訊

Cloudflare拒免個人項目死循環賬單

一名個人開發者公開 Cloudflare 支持郵件:當前賬期發票金額爲10811.41美元,主體是2026年9月23日至10月6日 Workers 裏 Durable Objects 的鬧鐘循環。支持方 Adil 寫道,按量計費只認實際消耗,循環來自客戶 Worker 代碼,不是計量或基礎設施故障,因此不能減免。發票仍開着,餘額仍要付。

開發者稱這是一個無人使用的測試項目,自己是一個人的小團隊,金額超出承受範圍,並已停掉 Workers、改掉鬧鐘調度、加上賬單警報。支持回覆確認這些是正確止損,並建議把警報閾值放低、覈對送達。郵件末行寫着,回覆由 Cloudflare Workers AI 增強,模型爲月之暗面的 Kimi K2.7。

他自己的本地會話記錄把觸發點指到 Codex。記錄寫:Codex CLI 0.151.0、模型 gpt-5.6-sol,8月31日14:53 UTC 的會話用一個補丁同時加入 checkpointRefreshAt,並在 runAlarm 里加了持續重排鬧鐘的一行。同賬號另一會話在19:30 UTC 執行提交,說明爲 feat: add durable hosted Pi canary,哈希 f7d4fb0,127個文件、增加50211行。作者顯示爲 Aaron,因爲他用的是本機 git 配置,提交裏沒有 AI 署名。

次要提交來自 Claude。9月3日哈希 f6d73a4a、共同署名爲 Claude Fable 5.1,加入 reusableIdleCheckpoint,複用快過期的檢查點,讓循環更難自己停下。他稱這不是觸發點。爆發落在9月23日,是因爲他記錄的檢查點存活期30天、刷新窗口7天,8月31日前後創建的檢查點過23天進入刷新窗口。

他在帖文裏把讀寫量寫成6萬億次。這個量級沒有出現在公開的支持郵件裏,郵件只確認費用來自鬧鐘循環。Durable Objects 文檔規定每個對象同時只能有一個鬧鐘,setAlarm 按一次寫入計費,鬧鐘至少執行一次,處理函數拋錯會按指數退避重試,最多6次。

買方是按行讀寫付費的平臺,賣方是沒有設硬封頂的個人項目。事件由代碼重排鬧鐘驅動,不是流量。錢從測試項目流向 Durable Objects 用量,受益的是按實際消耗收款的計費層,承壓的是沒有支出上限、通知又不覆蓋行讀寫的個人開發者。支持把舉證責任留在客戶:除非拿出平臺側故障證據,否則不銷賬。

同類機制今年4月已在英文論壇出現。一名開發者稱 onStart 每次醒來都無條件 setAlarm,再疊加60多個預覽部署,8天賬單34895美元,峯值約每天9300億次行讀取,用量通知只盯 CPU,不盯 Durable Objects 讀寫,儀表盤也沒有硬支出帽。

來源:公開信息

ABAB AI 解讀

Durable Objects 的鬧鐘從2022年就按存儲接口計費,官方示例要求先 getAlarm,沒有現成鬧鐘才 setAlarm。2026年4月的公開案例把反例跑完:無條件重排加上60多個預覽實例,8天34895美元,峯值約每天9300億次行讀,通知只覆蓋 CPU。這次10811.41美元走的是同一條縫,只是觸發代碼被開發者記到8月31日的 Codex 會話。

資源沒有花在用戶請求上。測試項目無人使用,循環從9月23日跑到10月6日,賬單按行讀寫結算;開發者已停 Worker、改調度、加警報,支持仍稱這是正確止損,不是減免理由。Codex 側被指向的提交有127個文件、50211行新增,git 作者是本機配置的 Aaron,沒有 AI 共同署名。Claude 的9月3日提交被他標成加重項,不是起點。錢的路徑是模型寫出重排,平臺按次收款,人在發票開出後才成爲控制迴路。

類比是雲廠商把無服務器的免費層做成入口、把存儲操作做成無上限計量,和移動運營商對短信網關循環照樣出賬。行業處在擴張階段:Cloudflare 用代理周把個人開發者推向 Durable Objects,計費帽沒有同步。Bumble式的產品更換無關,相關的是 Tinder 稱約90%新代碼由 AI 生成、人只審查。審查若漏過 setAlarm,漏掉的是一張按行計費的發票。

這是定價權轉移。模型把一行重排的價格壓到接近零,平臺把這一行的每次執行標成寫入。機制是至少一次執行加上失敗重試,會讓錯誤調度自我續命;30天存活期和7天刷新窗口則把8月31日的補丁推遲到9月23日才進入賬單。人以爲自己在看測試項目,計費系統看的是行。沒有硬帽時,定價權在計量,不在寫代碼的那個會話。

ABAB News · 認知定律

  1. 代碼可以免費生成,循環按次計價。

  2. 沒有硬帽的用量,通知來得一定晚。

  3. 署名在本機,賬單在平臺。