# Your AI provider is going to have a bad day

Two reminders landed this week. Anthropic is retiring Claude Sonnet 4 and Opus 4 from the API on June 15 — if you pinned those versions, your calls just start returning errors, with no automatic failover. And this morning, Gemini went down. Same lesson from opposite directions: the model under your product is a third-party service that will, on a schedule you don't control, change, vanish, or break. The fix isn't strategy. It's the boring resilience engineering most AI products skip.

- **Author:** Fedor Chishchin
- **Published:** 2026-06-10
- **Tags:** architecture, methodology
- **Source:** https://fedorthinks.com/blog/your-ai-provider-will-have-a-bad-day

---

Two small news items this week say the same thing. First: Anthropic is
[retiring Claude Sonnet 4 and Opus 4 from the API on June 15](https://platform.claude.com/docs/en/about-claude/model-deprecations).
If your code calls those pinned versions, after that date the requests
[just return errors — there's no automatic failover to a newer model](https://chatforest.com/guides/anthropic-claude-sonnet-4-opus-4-deprecation-june-15-2026/),
the call simply fails. Second: this morning, Google's Gemini
[went down](https://ca.news.yahoo.com/gemini-down-today-latest-updates-142422735.html),
serving "something went wrong" to everyone who depends on it.

One is a planned retirement, the other an unplanned outage, but they're the same
lesson pointed two ways: **the model under your product is a third-party service,
and it will fail you on a schedule you don't control.** We talk about AI like it's
a magic oracle that's always awake and never changes. It's infrastructure now —
and infrastructure has bad days. The question is whether yours takes your product
down with it.

## AI is infrastructure, and infrastructure goes down

This isn't rare. One status tracker logged 47 incidents across major AI providers
in a single month late last year — Anthropic and OpenAI each with
[over 180 hours of total impact](https://www.thoughtworks.com/insights/blog/generative-ai/claude-outage-june-2026).
OpenAI had a 34-hour outage in 2025. Even at a healthy 99.76% uptime, that's
[roughly 16 hours a year](https://www.thoughtworks.com/insights/blog/generative-ai/claude-outage-june-2026)
where the thing your product is built on simply isn't there. Add deprecations like
June 15, where a model doesn't go _down_ but goes _away_, and the picture is clear:
depending on a single provider with no plan is depending on their best day,
forever.

Most AI products are built exactly that way — one provider, one model string,
called directly, with a happy-path assumption that it always answers. That's fine
in the demo. It's a time bomb in production.

## Know your failure type before you react

The first thing resilience engineering teaches is that not all failures are the
same, and reacting wrong makes it worse. A **transient** failure — a 429 rate
limit, a brief network blip — clears in seconds, and a retry fixes it. A
**persistent** failure — a full provider outage, a model returning garbage for
twenty minutes — won't clear by waiting, and
[retrying it just burns money and time for nothing](https://www.buildmvpfast.com/blog/building-with-unreliable-ai-error-handling-fallback-strategies-2026).
Blindly retrying every error is how a provider's bad hour becomes your runaway
bill. So the layers stack: retry the transient, fall back on the persistent, and
trip a circuit breaker when the whole thing is degrading.

## The four moves that keep you up when they go down

You don't need anything exotic — this is standard distributed-systems hygiene,
applied to the model call:

- **Retry with backoff** for transient errors. Rate limits and network hiccups are
  normal; a couple of retries with increasing delay absorbs most of them without a
  human noticing.
- **A fallback model or provider** for persistent ones. This is the big one, and
  the math is striking: two independent providers at 99.3% uptime are both down at
  once only
  [0.0049% of the time — about 99.995% effective uptime](https://universal.cloud/en/blog/ai-uptime-vergeten-risico/).
  A second path turns an outage into a slightly worse answer instead of no answer.
  (It's also why keeping the model behind a [swappable seam](/blog/three-models-one-line)
  pays off operationally, not just strategically.)
- **A circuit breaker** so that when a provider is clearly down, you stop hammering
  it, fail fast, and recover cleanly instead of piling up timeouts.
- **Graceful degradation** to a deterministic path. If the AI feature dies, don't
  show a spinner forever — fall back to something dumber that still works: keyword
  search instead of semantic search, a templated response instead of a generated
  one, a plain form instead of the smart flow. Tell the user "advanced features are
  briefly offline" and keep the product usable.

That last one matters most and gets skipped most. An AI feature with no
non-AI fallback means your whole product's uptime is now capped by your flakiest
dependency.

## And put deprecation on your calendar

The June 15 retirement is the quieter failure mode, and it catches people who
thought they were safe. Pinning a model version feels responsible — you froze the
behavior. But a pinned version is a version that can be _retired_, and when it is,
your call doesn't degrade, it dies. So either track the deprecation notices for
every model you pin, or don't pin a version you're not prepared to migrate off on
the provider's timeline. Migrating is usually
[a one-line change](https://chatforest.com/guides/anthropic-claude-sonnet-4-opus-4-deprecation-june-15-2026/) —
but only if you find out before June 15, not from your error logs on June 16.

## The bottom line

The exciting story about AI is everything it can do. The unglamorous story, the one
this week quietly told twice, is that it's a remote service that will be slow,
down, or gone at moments you didn't pick — and a product that assumes otherwise is
one bad morning away from an incident. None of the fixes are clever. Retry the
blips, fall back on the outages, degrade to something deterministic, and watch the
deprecation calendar. It's the same boring reliability work we'd do for any
critical dependency — and the model is now exactly that.

So before you ship, ask the question the demo never forces you to: when my
provider has its bad day — and it will — what does my user see? If the answer is
"an error and a spinner," you haven't built a product on AI. You've built one that
borrows its uptime from someone else, and they didn't promise you their good day.
