Azure OpenAI o1, o3, o3-mini and o4-mini retire on 19 November 2026: 410 Gone

HTTP 410 Gone
# every call to an Azure OpenAI deployment of o1, o1-pro, o3, o3-pro, o3-deep-research, o3-mini or o4-mini once it is retired on 19 November 2026

Short answer: Azure OpenAI retires o1, o1-pro, o3, o3-pro, o3-deep-research, o3-mini and o4-mini on 19 November 2026. After that, every call to them returns 410 Gone. Standard deployments are upgraded automatically, to gpt-5.6-sol for the o1/o3 family and gpt-5.6-terra for o3-mini and o4-mini, unless they're set to NoAutoUpgrade. Provisioned deployments are never upgraded, so move them yourself before the date.

Why it happens

Microsoft's model retirement schedule (updated 23 September 2026) lists all seven o-series models as Deprecated, with retirement on 2026-11-19. The replacements are gpt-5.6-sol (o1, o1-pro, o3, o3-pro, o3-deep-research) and gpt-5.6-terra (o3-mini, o4-mini). Under the lifecycle policy, a retired model serves nothing: all inference requests return 410 Gone, and retirement dates can't be extended. Global Standard, Data Zone Standard and Standard deployments are auto-upgraded region by region, but only if versionUpgradeOption allows it: with NoAutoUpgrade the deployment just stops working. Provisioned deployments (PTU) are never auto-upgraded. And because the models are Deprecated, a subscription that never deployed them can't create new deployments. Checked against Microsoft Learn on 31 October 2026.

Fix

  1. List every Azure OpenAI or AI Services resource: az cognitiveservices account list --query "[?kind=='OpenAI' || kind=='AIServices'].{name:name, rg:resourceGroup}" -o table.
  2. For each one, list its deployments with model, version, SKU and upgrade setting: az cognitiveservices account deployment list -g RESOURCE_GROUP -n ACCOUNT --query "[].{deployment:name, model:properties.model.name, version:properties.model.version, sku:sku.name, upgrade:properties.versionUpgradeOption}" -o table. Note every row whose model is o1, o1-pro, o3, o3-pro, o3-deep-research, o3-mini or o4-mini.
  3. Provisioned SKUs (ProvisionedManaged, GlobalProvisionedManaged, DataZoneProvisionedManaged) are never upgraded. Create a replacement deployment (gpt-5.6-sol for o1/o3 models, gpt-5.6-terra for o3-mini/o4-mini), check quota, test it, then switch traffic, or use the in-place migration Microsoft describes. Do it before 19 November.
  4. Standard SKUs with NoAutoUpgrade will just stop. Either set versionUpgradeOption to OnceCurrentVersionExpired (portal: deployment โ†’ Edit โ†’ Version update policy), or migrate yourself as in the previous step.
  5. Standard SKUs that will auto-upgrade: test the new model now instead of finding out on 19 November. Deploy gpt-5.6-sol or gpt-5.6-terra side by side, then run your real prompts, tools and output parsing against it. Prompts, latency and cost can all change with the model.
  6. Your code calls a deployment name, not a model name. If you create a new deployment, update the name your app uses (for example AZURE_OPENAI_DEPLOYMENT) everywhere: app settings, Logic Apps, Power Automate flows, n8n credentials, scripts.
  7. Already past 19 November and getting 410 Gone? The deployment is retired and can't come back. Create a deployment of the replacement model, point your app at it, and redeploy.
Find every place that still calls a retiring model. The free AI model retirement scanner finds model names in code, config and n8n workflows, with the date and the replacement. The kit adds the patch steps and a test script for the new model.

AI Model Shutdown Kit ($29)

Watch out

Sources

Did this fix it?

What's still not working?

Describe what happens and paste any error message. We read every report and fix the page.

Other errors breaking soon

All "breaking soon" fixes