On 2026-07-28, Google's deprecation page listed October 16, 2026 as the shutdown date for
gemini-2.5-pro, gemini-2.5-flash and gemini-2.5-flash-lite.
On 2026-08-03, the date was gone.
As I write this the same page reads "No shutdown date announced" for all three, and the string
2026-10-16 appears on it zero times. No changelog entry, no banner, no email. The page simply
says something different than it did a week earlier.
Nothing was wrong on either day. A team that read it in late July scheduled a migration against
an October deadline. A team that read it a week later saw no deadline at all. Both read the
vendor's own documentation. Neither had any way to know the other reading existed.
That is not carelessness. It is what a page does when it stores state instead of history: it
can be correct every single day and still never tell you it changed. I wrote that one case up
with the full before-and-after
here;
this post is what happened when I stopped looking at one case and counted all of them.
I run a crawler over the deprecation pages of 15 model vendors for exactly this reason — it reads
them daily and keeps what they overwrite. Which means I can ask a question the pages themselves
can't answer: what does the next quarter actually look like, across all of them at once?
The next 90 days
62 models are scheduled for removal between 2026-09-24 and 2026-12-22.
Sep (24-30) 12
Oct 28
Nov 12
Dec (1-22) 10
By vendor. The two right-hand columns turned out to matter more than the count:
| vendor | shutdowns | names a successor | states when it was announced |
|---|---|---|---|
| OpenAI | 36 | 31 | 1 |
| Azure | 13 | 10 | 0 |
| AWS | 6 | 0 | 6 |
| 6 | 6 | 0 | |
| xAI | 1 | 1 | 0 |
| total | 62 | 48 | 7 |
Read those two columns as a pair
Migrating off a model is two questions. What do I move to, and how much time do I have.
OpenAI, Azure and Google answer the first one well — 47 of their 55 shutdowns name a replacement.
None of them tell you when the clock started. AWS is the exact mirror: all six of its entries
carry an announcement date, and not one names a successor.
Across all 62, exactly one record carries both facts.
It is gpt-5.4-cyber. Announced 2026-09-11, removed 2026-10-01, with gpt-5.6-cyber named as
the target. Twenty days.
For scale, Anthropic publishes a 60-day minimum and AWS publishes six months, both as stated
policy you can go and read. Those are commitments you could hold someone to, and the gap between
them is real: the same Claude model gets 60 days of notice on one platform and 184 on the other,
which I measured in the same write-up.
There is no published policy behind the twenty. It is just what the page happened to say that
week.
So the one entry this quarter that answers both halves is also the shortest runway in it. That
reads less like coincidence than like a shape: a vendor that publishes an announcement date has
made notice into something measurable, and a vendor that doesn't has nothing to be measured
against.
The column I refuse to fill in
"States when it was announced" means the vendor printed a date on its own page. When they don't,
I leave the field null.
I do not substitute the timestamp of my own crawler, even though I have one for every record
and it would fill that column nicely. My crawler runs hourly, so its timestamp measures my
polling interval plus whenever the vendor got around to editing. Writing that into a field
labelled announced would turn my latency into a vendor commitment.
Seven out of 62 is an unsatisfying number to publish. It is also the only honest one.
The successor column follows the same rule: it holds the model the vendor names, not the model I
think you should use.
The ones that can't be counted at all
34 deprecations in the archive were announced with no shutdown date.
They aren't in the 62 and they never will be, because a calendar view has nowhere to put them.
If you are running one of those, your model is formally deprecated, has no announced end, and
will not appear in any quarterly list until somebody assigns it a date — possibly with twenty
days' notice.
What I would actually do about it
Four of these dates land within a week of this post. sora-2 and sora-2-pro plus three dated
variants go on
2026-09-24, no successor named. babbage-002, davinci-002, gpt-3.5-turbo-1106 and
gpt-3.5-turbo-instruct go on 2026-09-28. AWS retires Nova Canvas and Nova Reel on 2026-09-30.
Azure retires gpt-4o and o3-mini on 2026-10-01.
Pin the dated model string, not the alias. A lot of the entries above are dated variants —
sora-2-2025-10-06 and its siblings. Point your code at the undated name and you are on whatever
the vendor last mapped it to, and the variants do not all retire on the same day.
Snapshot the page you are planning against. This is the one that would have caught the Google
case, and it does not require what I built. A scheduled job that curls the deprecation page and
commits the HTML to a repo gives you a diff and a date. The entire problem is that you cannot see
July's version from inside August — a cron job and 20 lines of YAML fixes that for one vendor.
The full 62 with dates and successors, plus a page per model:
aichangewatch.com/deprecations
Top comments (0)