Workers AI retires 24 models on 20 November: check your Worker
Cloudflare will retire 24 Workers AI models on 20 November 2026: 16 text-generation models (LLMs), four image models, two speech models, one vision model and one embedding model. Cloudflare first named 15 November and later moved the date to 20 November. After that date a call to a retired model fails with HTTP 410 Gone and error code 5028. If any Worker of yours names one of these model IDs, it will stop answering that day, so search for the IDs now and switch to a current model.
The retired models
These are the 16 LLMs, exactly as Cloudflare lists them in its changelog entry of 5 November 2026:
@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 come with a suggested replacement:
@cf/stabilityai/stable-diffusion-xl-base-1.0to@cf/black-forest-labs/flux-2-klein-9b@cf/runwayml/stable-diffusion-v1-5-inpaintingto@cf/black-forest-labs/flux-2-klein-9b@cf/bytedance/stable-diffusion-xl-lightningto@cf/black-forest-labs/flux-2-klein-9b@cf/lykon/dreamshaper-8-lcmto@cf/black-forest-labs/flux-2-klein-9b@cf/myshell-ai/melottsto@cf/deepgram/aura-2-en@cf/openai/whisper-tiny-ento@cf/deepgram/nova-3@cf/llava-hf/llava-1.5-7b-hfto@cf/moondream/moondream3.1-9B-A2B@cf/google/embeddinggemma-300mto@cf/google/embeddinggemma-2 (listed as available soon)
For LLMs, Cloudflare does not name one replacement per model. It recommends @cf/deepseek-ai/deepseek-v4.1-flash-1017 and @cf/zai-org/glm-5.3 for frontier needs, and @cf/google/gemma-4-26b-a4b-it and @cf/qwen/qwen3.8-27b for smaller models.
Check whether your Worker calls one
- Search the code. Search every repo for
@cf/and compare each match with the list above. Also search forenv.AI.run(and.ai.run(, because the model ID is often passed in as a variable and will not appear next to the call. - Check the configuration. Open
wrangler.jsoncorwrangler.tomland look for anaibinding. Then look for variables that hold a model name, such asAI_MODEL, in the config, in.dev.vars, in the dashboard variables of each Worker and in your deploy scripts. A value set in the dashboard will not show up when you search the code. - Check AI Gateway. If you send Workers AI calls through AI Gateway, open its logs. They list each request with its provider, status and timestamp. Look at the Workers AI requests for any that use a retired model, and watch for status 410 after 20 November. This catches code paths that run rarely, such as a nightly job or a fallback.
- Check other repos and demos. Old demo Workers and client projects are the usual place a retired model survives.
Work out the order by risk. A model behind a customer-facing chat box matters more than one behind an internal script, and a job that runs rarely is the one most likely to be forgotten. Make a short list of each Worker, the model it calls and who owns it. Fix the customer-facing ones first, and the rest well before 20 November.
Switch the model
The change is usually one line. Here is a text model before and after:
// Before
const out = await env.AI.run("@cf/meta/llama-3.1-8b-instruct-fp8", { messages });
// After
const out = await env.AI.run("@cf/google/gemma-4-26b-a4b-it", { messages });
Before you ship, open the new model's page in the Workers AI model catalog and check its input and output format, because formats can differ between models. Run your own test prompts, since a different model can answer differently. Check pricing too: Cloudflare points to its Workers AI pricing page and says newer models give better token efficiency and throughput.
Two habits make the next retirement painless. Keep the model ID in one constant or one environment variable, and add a test that makes one real call with it. If you use an embedding model, remember that vectors from different models are not interchangeable, so a switch means re-indexing your stored data.
A side note on D1
D1 has a separate change that landed on 4 November 2026: it now enforces a maximum query result size of 50 MB. A query that returns more fails with the error "D1 query result exceeded the maximum response size limit of 50 MB". Cloudflare says the limit covers the 99.999th percentile of requests, so most apps are unaffected. Imports and exports through the REST API are exempt. If a query of yours is close, select only the columns you need instead of SELECT *, and page through large results with LIMIT and OFFSET. The details are in Cloudflare's D1 changelog entry of 30 October 2026.
Where we can help
We build and look after Workers that call AI models. If you want a second pair of hands on an agent or automation that runs on Workers AI, see our AI agents and automation service. If you would rather have a managed assistant on your website, see the Done-for-You AI Assistant. Everything else we do is on the services page.
Sources
- Planned model deprecations on Workers AI, Cloudflare changelog, 5 Nov 2026
- D1 will enforce a maximum query result size of 50 MB, Cloudflare changelog, 30 Oct 2026
- Workers AI errors, Cloudflare
- Workers AI model catalog, Cloudflare