blog

Cloudflare Workers AI: 24 model IDs retire November 20

Cloudflare lists 24 Workers AI model IDs for retirement on November 20. Here are the exact IDs, the announced 410 error, and the checks a replacement needs.

PiRouter Team4 min read
A model endpoint reaches its scheduled retirement boundary; the next route requires a separate compatibility check

Cloudflare says 24 Workers AI model IDs will stop responding on November 20, 2026. Requests naming them are scheduled to return HTTP 410 Gone with internal code 5028. That is a planned retirement, not an outage reproduced for this article: find the IDs your application actually uses, check a replacement against its workload, and change the configuration before the deadline. Retrying an ID after it retires cannot make that ID available again.

The Workers AI model-retirement notice originally named November 15 and now explicitly moves the date to November 20. It does not specify a cutoff hour or timezone. The change concerns the listed Cloudflare Workers AI IDs, not a claim that the underlying model families will disappear from every provider.

Which 24 Workers AI IDs retire on November 20?

The notice lists 16 LLM IDs. Search for the entire ID, including its version and variant suffix. A configuration that uses @cf/deepseek-ai/deepseek-v4-flash-0731, for example, is not the same reference as one using @cf/deepseek-ai/deepseek-v4.1-flash-1017.

@cf/deepseek-ai/deepseek-r1-distill-qwen-32b
@cf/nvidia/nemotron-3-120b-a12b
@cf/deepseek-ai/deepseek-v4-pro-0813
@cf/deepseek-ai/deepseek-v4-flash-0731
@cf/qwen/qwq-32b
@cf/qwen/qwen3-30b-a3b-fp8
@cf/moonshotai/kimi-k2.6
@cf/moonshotai/kimi-k2.7-code
@cf/zai-org/glm-5.2
@cf/zai-org/glm-5.3-flash
@cf/meta-llama/llama-2-7b-chat-hf-lora
@cf/google/gemma-2b-it-lora
@cf/google/gemma-7b-it-lora
@cf/meta/llama-3.1-8b-instruct-fp8
@cf/meta/llama-3.2-1b-instruct
@cf/meta/llama-3.2-3b-instruct

The other eight IDs have suggested targets in the same notice. An arrow here means “suggested by Cloudflare,” not that parameters, output, quality, account access, or price are interchangeable.

Retiring Workers AI IDSuggested target in the notice
@cf/myshell-ai/melotts@cf/deepgram/aura-2-en
@cf/stabilityai/stable-diffusion-xl-base-1.0@cf/black-forest-labs/flux-2-klein-9b
@cf/runwayml/stable-diffusion-v1-5-inpainting@cf/black-forest-labs/flux-2-klein-9b
@cf/bytedance/stable-diffusion-xl-lightning@cf/black-forest-labs/flux-2-klein-9b
@cf/lykon/dreamshaper-8-lcm@cf/black-forest-labs/flux-2-klein-9b
@cf/openai/whisper-tiny-en@cf/deepgram/nova-3
@cf/llava-hf/llava-1.5-7b-hf@cf/moondream/moondream3.1-9B-A2B
@cf/google/embeddinggemma-300m@cf/google/embeddinggemma-2 — marked “available soon”

There is no one-to-one LLM replacement table in the available notice text. In particular, “available soon” is not a basis for scheduling an immediate cutover to the named embedding target. Verify that a candidate is offered to your account before relying on it.

Three documented Workers AI errors: 410/5028 for retired models, 429/3036 for daily allocation, and 429/3040 for capacity
Editorial summary of documented errors, not a captured API response.Source: Workers AI errors reference

A retired model returns 410/5028; two different problems return 429

Cloudflare’s Workers AI errors reference places Model deprecated at HTTP 410, internal code 5028. It also lists two HTTP 429 cases: 3036 for an exhausted daily free allocation and 3040 for temporary capacity exhaustion. The retirement notice specifies the future 410/5028 result for these IDs. We have not called a retired endpoint or observed that response ourselves.

Documented responseWhat to investigate first
410 / 5028The full model ID and its retirement date; choose and validate another available ID.
429 / 3036Account allocation and billing eligibility.
429 / 3040Capacity and the documented retry guidance; do not assume persistent 429s will clear through repeated retries.

These are Workers AI error categories, not a guarantee that every AI Gateway integration wraps or surfaces errors in exactly this shape. A retry policy built for transient capacity trouble does not replace the work of updating a retired model reference. If a routing layer can fail over, its configured target must still be available and suitable for the task.

Before replacing an ID, check four things

First, inventory actual references. Search application code, environment-backed configuration, scheduled jobs, and any saved model choices for the exact IDs above. A code search cannot find a model choice stored only in a database or dashboard; check where your deployment keeps those choices. Prioritize references that still receive traffic.

Second, test the application contract, not just whether a candidate responds. Compare supported inputs, function calls or structured outputs, response parsing, and any task-specific behavior using a small set of real inputs and expected outputs (fixtures). For an embedding change, check vector dimensions and how an existing index will be used; rebuilding may be necessary, but that is an application decision, not a promise made in the retirement notice. These checks are guidance for your own controlled tests, not tests performed for this article.

Third, check access and cost for the exact new ID. The Workers AI pricing page lists models that require a Workers Paid plan or prepaid AI Gateway credits, and its table distinguishes input, cached input, and output rates where applicable. That page carries an October 20 update label and still shows some retiring IDs. A price row does not guarantee availability after November 20, and it does not establish a future price. Review current eligibility and rates when you make the switch; inference tests may themselves incur charges.

Finally, stage the cutover and its fallback. Monitor calls to the new ID, errors, output contracts, and spend. A rollback target should be an available model you have validated, not the retired ID. Cloudflare’s notice does not promise automatic forwarding from the old IDs. Plan to finish this work before November 20, rather than waiting for a production 410 to reveal a forgotten caller.