
Cloudflare put three Workers AI models behind Paid: upgrade, switch, or watch?
Cloudflare now returns 403 on Free for Kimi K2.6, Kimi K2.7 Code, and GLM-5.2; the right response is an account or model decision, not a hosting migration.
The change
Cloudflare has moved three Workers AI models behind the Workers Paid plan:
@cf/moonshotai/kimi-k2.6, @cf/moonshotai/kimi-k2.7-code, and @cf/zai-org/glm-5.2. The access change was published on July 28, 2026. Requests for those model IDs from a Workers Free account now return HTTP 403 with an upgrade prompt, rather than an inference response. 1Decision: audit your model IDs now. Upgrade if one of these models is a real dependency; switch models if you can tolerate a new evaluation cycle. This is not a reason to migrate your hosting platform.
Cloudflare says the restriction is intended to reserve capacity for the wider Workers AI user base and reduce
429 and 3040 out-of-capacity errors. That explanation may be reasonable, but the operational result is simpler: a model that worked under the Free plan can now fail at the request boundary.Why this is a breaking change
This is an entitlement change, not a model deprecation. The Worker runtime, routes, bindings, and deployment flow do not change merely because an account remains on the Free plan. The affected path is any request that selects one of the three newly restricted model IDs.
That distinction matters for incident response. A dashboard check showing a healthy Worker will not prove that an AI feature still works. The failure can sit behind a route that is otherwise serving normally. Search application code, environment variables, model configuration, and integration tests for the three IDs, then exercise the actual inference path under the same account and plan used in production.
The change also lands on models that are likely to sit in agentic or coding workflows. Cloudflare's catalog describes Kimi K2.6 as a large open model with tool calling, vision, structured outputs, and a 262.1K context window; it describes Kimi K2.7 Code with the same broad context and agentic capabilities. The catalog describes GLM-5.2 as a flagship agentic coding model. Those labels do not prove that every application needs them, but they do mean a replacement should be tested as a behavior change rather than treated as a string substitution. 2
The three practical paths
| Path | Use it when | First action | Main risk |
|---|---|---|---|
| Upgrade the account | The application depends on one of the three models and its behavior is already validated | Move the account to Workers Paid, then verify the production request path | A small subscription decision can expose the model's separate usage charges and require billing ownership |
| Switch models | The feature can accept a different model and avoiding a paid plan matters more than preserving exact behavior | Put the model ID behind configuration and run output, tool-call, latency, and cost checks | Quality or structured-output behavior may change without a code-level error |
| Add a model gateway | The team already needs provider routing, fallback, or a multi-provider policy | Test the gateway as an application architecture change, not as a one-line workaround | More routing and credential behavior to operate, plus another place where model semantics can differ |
The first path is cheaper to reason about, even when it is not cheaper to run. Cloudflare's Workers Paid plan has a minimum charge of $5 per month per account. The changelog says the plan still includes 10,000 free Neurons per day, with usage above that billed according to each model's pricing. 31
The second path preserves the Free plan, but it moves the cost from billing to validation. Cloudflare's announcement names models that remain available on Free, including
@cf/zai-org/glm-4.7-flash and @cf/google/gemma-4-26b-a4b-it. That is a useful starting point for a fallback test, not a claim that either model is equivalent to the restricted models. 1Do not make the fallback choice from a benchmark headline. Re-run the prompts that matter to your product: tool selection, JSON or schema-constrained output, long-context retrieval, refusal behavior, latency under your normal traffic, and the bill for the model's actual token mix. If the feature is user-facing, put the replacement behind a flag and keep the old model path available until the results are understood.
Where a competing approach differs
Vercel AI Gateway is a useful comparison because it operates at a different layer. Its provider-options documentation describes routing model requests across multiple AI providers and exposes controls for provider order, allowed providers, sorting by cost or latency, and fallback behavior. 4
That makes a gateway a plausible long-term answer for teams that want to move between providers without rewriting every application call. It does not make Vercel a drop-in replacement for this Cloudflare change. A direct Workers AI call is being denied because of the account plan attached to the selected model. A gateway introduces a routing layer, a different credential path, and a new set of model/provider combinations to test.
The migration question is therefore narrower than "Should we leave Cloudflare?" If the Worker, storage, routing, and deployment stack are working, moving the whole application would be an expensive response to an inference entitlement. Decide at the model-call boundary first. Consider a gateway only if provider choice, failover, or model portability is already a requirement for the system.
What to do before the next release
- Inventory the three model IDs. Search source, environment configuration, IaC, and test fixtures. Include agent tools and background jobs, not just the main chat route.
- Run a plan-matched canary. Test the current production account on Free or Paid as applicable. Confirm that the affected path returns the expected result or the documented 403, then verify your alert catches the failure.
- Choose based on dependency. Upgrade when preserving behavior is worth at least the $5 monthly account minimum and the model's usage cost. Switch when you can validate a different model. Add a gateway only when its routing features solve a problem you already have.
- Keep the model ID configurable. A hard-coded model string turned a platform policy change into a release-day incident. A configuration switch gives the team room to evaluate an alternative without changing deployment plumbing.
The action window is immediate for Free-plan applications that call one of the three IDs. Paid-plan users should still confirm their billing and usage assumptions, but the announcement does not require a hosting migration or a rewrite of the Worker itself.
Verdict: upgrade or switch the model, do not migrate the platform
This is the week's clearest migration signal at the application boundary, not at the hosting boundary. Teams with a validated dependency on Kimi K2.6, Kimi K2.7 Code, or GLM-5.2 should upgrade and keep their existing stack intact. Teams that only chose those models because they were available on Free should test the listed alternatives before paying for access.
Watch for further plan-based restrictions if your system treats a free model catalog as a permanent contract. For this change, though, the correct move is concrete: find the model IDs, run a plan-matched canary, and make the upgrade-versus-switch decision before the next production release.
Related content
- Sign in to comment.
