1402 字
7 分鐘

Cloudflare Workers AI 出現 403/5035 怎麼辦?先查模型與付費方案

Cloudflare Workers AI 呼叫模型時收到 HTTP 403,回應內又出現 5035,先不要重建 binding 或輪替 token。官方錯誤表把 5035 定義為 Model requires Workers Paid plan;目前 pricing 頁面也列出,@cf/moonshotai/kimi-k2.6@cf/moonshotai/kimi-k2.7-code@cf/zai-org/glm-5.2 需要付費 billing method。

直接答案是:先確認實際 model ID,再確認 Workers Paid 帳單或 prepaid AI Gateway credits,最後才檢查 binding 與部署版本。 如果專案必須留在 Free plan,就改用目前模型目錄中不要求付費 billing method 的模型,並重新跑最小請求驗證。

先把 403/5035 和其他錯誤分開#

同一個 AI.run() 失敗,不代表都是帳號方案問題。先保留 HTTP status、Cloudflare internal code 和 model ID,再對照 Workers AI 錯誤表

HTTP/code意義第一個檢查點
403/5035模型需要 Workers Paid plan方案與付費 billing method
429/3036Free 每日 10,000 neurons 額度已用完當日用量或升級方案
429/3040沒有可轉送請求的資料中心容量稍後重試與模型狀態
400/5007找不到該模型model ID 是否存在、是否打錯
404/3042模型名稱無效對照官方模型目錄

5035 不是「今天的 neurons 用完」;那是 3036。也不是單純把 API token 換一支就能解決的授權邊界。這個區分能避免把真正的方案問題誤修成 binding 或 secret 問題。

目前哪些模型會要求付費?#

截至 Workers AI pricing 文件目前列出的規則,以下三個 model ID 需要付費 billing method:

@cf/moonshotai/kimi-k2.6
@cf/moonshotai/kimi-k2.7-code
@cf/zai-org/glm-5.2

可用兩條路取得存取權:帳號使用 Workers Paid plan,或使用 prepaid AI Gateway credits。後者不是把 Free plan 的每日免費額度變大;它是另一個預付計費路徑,還需要在 AI Gateway 的 Workers AI billing 設定中使用 Unified billing,並將 gateway 指定到 binding 或 REST API 請求。

如果你是在照著舊教學複製 model ID,請再開一次 Workers AI 模型目錄。模型可用性、價格與方案限制會變動,文章、截圖或 autocomplete 結果都不能取代目前目錄。

四步排查順序#

1. 記錄真正送出的 model ID#

先在不洩漏 prompt、token 或使用者資料的前提下記錄 model ID 與錯誤 code。常見問題是環境變數、模型別名或舊分支讓本機和正式環境送出不同字串。

const model = '@cf/moonshotai/kimi-k2.6'
const result = await env.AI.run(model, {
messages: [{ role: 'user', content: '回覆 OK' }],
})

不要先把 model ID 改成任意「看起來相近」的名稱。先用官方目錄確認完整字串、輸入格式與帳號是否能使用它。

2. 查帳號方案和 billing method#

到 Cloudflare dashboard 確認 Workers Paid 是否已綁定有效的 billing method。付款設定完成後,仍要確認你部署的 account ID 就是完成設定的帳號;多帳號或多環境設定很容易讓本機登入帳號和 CI 使用的帳號不同。

如果選擇 AI Gateway credits,檢查 credits 餘額、Unified billing 與請求使用的 gateway 是否對應。不要把 credits 設定在另一個 gateway,然後期待直接呼叫 Workers AI binding 會自動套用。

3. 確認 binding 只是連線設定,不是方案繞過#

Wrangler 的 Workers AI binding 可以這樣宣告:

{
"ai": {
"binding": "AI"
}
}

程式碼再透過 env.AI.run() 呼叫模型。若 binding 名稱不一致,通常會得到 binding 未定義或型別錯誤;binding 正常但指定模型回 403/5035,仍然要回到方案與付費條件。完整 binding 形式可參考 Workers AI 的 Wrangler 入門文件

4. 用同一個 model 做最小部署驗證#

先在測試 Worker 保留一個不含敏感資料的 prompt,跑本機或預覽環境,再到正式部署驗證。wrangler dev 的 Workers AI 請求仍會連到 Cloudflare 帳號能力,可能產生用量;不要把它當成完全離線的 mock。

Terminal window
pnpm exec wrangler dev
pnpm exec wrangler deploy

每次測試記錄 account、environment、model ID、HTTP status 與 internal code。若換成另一個確認可用的模型後成功,問題多半落在原模型的方案或可用性,而不是 Worker binding。

Free plan 的替代路徑#

如果產品需求允許留在 Workers Free,先從官方模型目錄挑一個符合輸入格式與品質要求、且不要求付費 billing method 的模型。不要只因為某個模型能通過一次測試,就在文件中承諾它永遠屬於 Free 可用範圍;把模型 ID 和排查日期一起記在設定或測試中。

如果專案使用 Cloudflare Agents,模型方案錯誤只是其中一層,還要把串流、tool call 和 Durable Object 狀態分開驗證;可以接著看 Cloudflare Agents AI SDK 7 升級檢查,不要把所有失敗都歸因於 Agents API。

常見問題#

Q: 50353036 都是方案不夠嗎?#

A: 兩者不同。5035 是指定模型要求 Workers Paid plan;3036 是 Free 每日 10,000 neurons 額度用完。前者先查模型與付費條件,後者先查每日用量或方案升級。

Q: 有 AI Gateway credits 就一定不用 Workers Paid 嗎?#

A: 針對 pricing 頁面列出的模型,Cloudflare 說明可以使用 Workers Paid plan 或 prepaid AI Gateway credits。仍需完成 Unified billing 和 gateway 指定,不能只購買 credits 而不改請求路徑。

Q: 403/5035 出現時要重新建立 AI binding 嗎?#

A: 如果 binding 名稱能正常解析,通常不需要。先用最小請求確認實際 model ID,再查部署 account 的方案與 billing method;只有 binding 未定義、設定檔未載入或名稱不一致時才處理 binding。

參考資料:

Cloudflare Workers AI:Errors

Cloudflare Workers AI:Pricing

Cloudflare Workers AI:Models

Cloudflare Workers AI:Get started with Workers and Wrangler

Cloudflare Workers AI 出現 403/5035 怎麼辦?先查模型與付費方案
https://laplusda.com/posts/cloudflare-workers-ai-paid-model-403/
作者
Zero
發佈於
2026-08-09
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。