# Vertex AI and Azure retirements, Nov 2026 to Apr 2027: one table

URL: https://infro.io/blog/vertex-ai-and-azure-retirements-nov-2026-to-apr-2027-one-table
Author: INFRO Editorial (https://infro.io/blog/editorial)
Publisher: INFRO
Published: 2026-10-27
Last modified: 2026-10-27
Last reviewed: 2026-10-27 (next review due 2026-11-26)
Topic: Architecture and migration
Format: Brief

> Azure Foundry publishes dated retirements: o-series and Llama-4-Maverick on 2026-11-19, gpt-4o 2024-05-13 on 2026-12-09, and later gpt-4o versions on 2027-04-14. I found no confirmed Vertex retirement date for Gemini 3.6 Flash, so it stays "unconfirmed" in the table. [^azure-schedule]

Key takeaways:
- Track the cloud's retirement date separately from the vendor's: Azure lists gpt-4o versions on 2026-12-09 and 2027-04-14, not on the vendor's date.
- The o-series (o1, o1-pro, o3, o3-pro, o3-mini, o4-mini, o3-deep-research) and Llama-4-Maverick all retire on Azure on 2026-11-19, 23 days from 2026-10-27.
- Azure auto-upgrades Standard-type deployments but not provisioned ones, so the same model id needs different handling per deployment type.
- Gemini 3.6 Flash has no confirmed Vertex retirement date in the pages read; record it as unconfirmed rather than copying the Gemini API's status.
- Key the registry on the cloud id, and give every row one owner, one replacement and an evaluate-by date.

## Two clouds, two calendars

A model id on a cloud is not the vendor's model. Azure Foundry keeps its own lifecycle, retirement dates and replacements, and says so: the replacement column is Microsoft's recommended target and, where supported, the one used for automatic upgrades.[1] Google's lifecycle page now sits under the Gemini Enterprise Agent Platform name in its docs.[2] If your tracker is keyed on the vendor's announcement, it will miss the date your own deployment actually stops.

One example: the vendor-side shutdown of GPT-4o is covered in [GPT-4o and GPT-4.1 shut down 14 January 2027](https://infro.io/blog/gpt-4o-gpt-4-1-shutdown-january-2027). On Azure, the gpt-4o 2024-05-13 version retires on 2026-12-09, and later versions on 2027-04-14.[1] Same family, different dates.

## The dated table

Dates below are from Microsoft's schedule page, last updated 2026-09-23. Re-check before acting. "Days left" counts from 2026-10-27.

| Cloud id | Cloud | Lifecycle | Retires | Days left | Listed replacement |
| --- | --- | --- | --- | --- | --- |
| o1, o1-pro, o3, o3-pro, o3-deep-research | Azure | Deprecated | 2026-11-19 | 23 | gpt-5.6-sol |
| o3-mini, o4-mini | Azure | Deprecated | 2026-11-19 | 23 | gpt-5.6-terra |
| Llama-4-Maverick-17B-128E-Instruct-FP8 | Azure | GA | 2026-11-19 | 23 | none listed |
| gpt-4o 2024-05-13 | Azure | Deprecated | 2026-12-09 | 43 | gpt-5.6-sol |
| gpt-4o 2024-08-06 | Azure | Deprecated | 2027-04-14 | 169 | gpt-5.1 |
| gpt-4o 2024-11-20 | Azure | Legacy | 2027-04-14 | 169 | gpt-5.1 |
| gemini-3.6-flash | Vertex | not confirmed | unconfirmed | n/a | n/a |

Table: Azure rows from the Foundry retirement schedule.[1]

The Gemini row is blank on purpose. The Google Cloud pages I could read returned navigation, not dates. The Gemini API's own page shows gemini-3.6-flash released 2026-07-21 with "No shutdown date announced", and says gemini-3.5-flash's endpoint routes automatically to 3.6 Flash.[3] That is the Gemini API, not Vertex, so do not copy it into a Vertex row. Read the Vertex page directly and fill the cell with a date you can cite.

Other nearby dates on the same Azure page: Llama-4-Scout 2027-01-31 and gpt-4.1 2027-04-14.[1]

## Map cloud ids to one owner and one replacement

Key the registry on the cloud-specific id, because that is what your code sends and what the cloud retires. Add the version and deployment type, since the same id can behave differently by deployment type.

```yaml
- cloud: azure
  id: o3
  version: "2025-04-16"
  deployment_type: global-standard
  retires: 2026-11-19
  owner: team-support-bot
  replacement: gpt-5.6-sol
  evaluate_by: 2026-11-05
  source: https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule
- cloud: vertex
  id: gemini-3.6-flash
  retires: unconfirmed
  owner: team-search
  replacement: unconfirmed
  evaluate_by: null
```

> **Example: Illustrative owners and dates**
> The owners (`team-support-bot`, `team-search`) and the `evaluate_by` dates are made up to show the shape. Set `evaluate_by` early enough to run your own evaluation before the cloud's cutover.

Three rules keep the table honest:

- One owner per row, a team that can approve a change, not a mailing list.
- One replacement per row, chosen by your evaluation. Microsoft says to compare quality, latency and cost on your own application and data before picking.[4]
- A `source` URL per row, so a stale date is visible.

## Azure behaviour to plan around

Retired means every inference request returns 410 Gone.[4] For Global Standard, Data Zone Standard and Standard deployments, Microsoft schedules automatic upgrades region by region. Provisioned deployments are not auto-upgraded and must be migrated manually.[4] So a row with a replacement can still need work if you run provisioned throughput, and an auto-upgrade changes the model behind your id without a code change.

Notices go to subscription owners with active deployments, at least 60 days before retirement for GA models, and appear in Azure Service Health.[4] Those owners may not be the application's owner, so route the alert to the team in your registry. You can also read `lifecycleStatus`, `deprecation.inference` and per-SKU `deprecationDate` from the Models API (subscription-scoped, per region) and diff them against your file nightly.[4]

Fine-tuned models retire separately. For example, fine-tuned gpt-4o 2024-08-06 deployments retire 2027-10-01.[1]

## Cross-checking the registry against vendor dates

INFRO sits between your application and the provider accounts you already pay.[5] Its model retirements capability records each vendor's deprecations and shutdown dates, warns organizations still sending a retiring model, and from the shutdown date refuses it before any provider call, naming the replacement. Those are vendor dates. Keep the Azure and Vertex dates in your own registry and compare the two, so a cloud date that falls earlier than the vendor's is caught.

## Questions

### Does a retired Azure deployment fail loudly?

Yes. Once a model is retired, inference requests return 410 Gone, so the failure is an explicit status code rather than a silent swap. [4]

### Can I rely on Azure's listed replacement?

Treat it as a default, not a decision. Microsoft says the listed replacement is its recommended target and, where supported, the auto-upgrade target, and that it does not limit your manual choices. Evaluate on your own prompts. [4]

## Sources

1. Model retirement schedule - Microsoft Foundry — Microsoft Learn. https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule (accessed 2026-10-27)
2. Model versions and lifecycle (Gemini Enterprise Agent Platform) — Google Cloud. https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions (accessed 2026-10-27)
3. Gemini deprecations (Gemini API) — Google AI for Developers. https://ai.google.dev/gemini-api/docs/deprecations (accessed 2026-10-27)
4. Microsoft Foundry Models lifecycle and support policy — Microsoft Learn. https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/model-retirements (accessed 2026-10-27)
5. INFRO documentation overview — INFRO. https://infro.io/docs (accessed 2026-10-27)
