AGENTIC ENGINEERING 5 min read

Silent failures: when your AI agent pretends everything is OK

No alert isn't no problem. Silent retry and fallback return "OK" while quality tanks. Datadog: 1/3 of LLM errors are hidden rate-limits.

Silent failure — retry and fallback return "OK" with no alert

Father's Day taught me one brutal truth: when a house goes suspiciously quiet, it doesn't mean there's peace. It means a kid just did something. In agentic systems engineering it works exactly the same way. Quiet is not proof of health. Sometimes it's proof that something already went wrong — and nobody shouted.

Systems that "heal themselves"

Most of you build systems with a survival instinct baked in. Request failed? Retry. Model threw an error? Fall back to a cheaper model. All silent, no bells, no alerts. It sounds like good agentic engineering, and sometimes it is. The trouble starts when that mechanism becomes the system's only reaction and leaves no trace behind.

From the outside it looks like success, because the system returns "OK". Status 200, there's a response, the dashboard is green. Underneath, quality is nosediving. The retry only worked on the third try, on a different, weaker model. The fallback quietly swapped the context. The user got an answer a whole class worse, and nobody found out, because no light ever came on.

Why do we build it this quiet in the first place? Because every one of us has been jolted awake at 3 a.m. by an alert that turned out to be nothing. Alert fatigue is real, so we instinctively mute anything that "sorts itself out". But there's a chasm between "don't page me for a single retry" and "don't log the retry at all". The first is hygiene. The second is blindness. And blindness is exactly where silent failures come from, the kind nobody can explain afterwards.

A third of errors are rate-limits swept under the rug

The Datadog State of AI Engineering 2026 report leaves no room for illusions: 1/3 of all errors in LLM spans are rate-limits that a "silent retry" sweeps under the rug. One in three. That's not statistical noise, it's a systematic signal that your infrastructure keeps hitting limits and you can't see it, because the retry patches the hole before anyone notices it's there.

No alert isn't the same as no problem. They're two completely different things, and they're very easy to confuse. A rate limit that's quietly retried today will, tomorrow — under heavier traffic — stop fitting inside the window. And then "silent" gets very loud. At the worst possible moment, exactly when you need stability the most.

And here's the crux: a rate limit isn't a random fault, it's a capacity question. If a third of your errors are throughput limits you can't see, you don't have a model problem — you have a planning problem. Another retry won't fix that. A deliberate decision will: more quota, a queue, or backpressure that someone actually sees on a chart.

"Silence in the logs is the loudest signal that your agent stopped working and started pretending."
WORK WITH ME

This is what I do hands-on — advising on AI strategy and building agents that survive the demo.

Retry and fallback aren't automation. They're debt.

If your system retries or drops to a fallback without leaving a trace in your monitoring — a counter, a log, anything — you don't have automation. You have hidden tech debt. The kind that stays quiet until it grows, then blows up in your face. You end up building systems that lie about being healthy because they're scared to shout.

The difference between mature AI observability and theatre is dead simple: every retry and every fallback has to be countable. The point isn't to get rid of them. They're a normal part of a resilient system. The point is that each one leaves a trace you can count, chart, and wake an alert with. It sounds like extra work, but it's a few lines in a layer you already have.

A TRACE INSTEAD OF SILENCE

  • A retry counter. How many times, on which step, with which error code — not one lumped-together "errors" number.
  • A fallback event. From which model, to which, and why. Otherwise you don't know whose quality you just dropped.
  • Rate limits as their own metric. Not "an error that fixed itself", but something you watch grow.
  • Alert on the trend. Not on a single retry, but on the week-over-week rise. The trend is what gives a silent failure away.

A silent failure wears many faces. Sometimes it's a retry, sometimes a fallback, and sometimes a model that grades its own work and hands itself an A. I wrote about that second trap — the model that confuses confidence with correctness — in a separate post on model self-evaluation. The mechanism is exactly the same: the system returns "OK" because nobody forced it to admit it was wrong.

Count your silent failures

Go into your monitoring today and count how many times in the last week something quietly retried or dropped to a fallback. A real number, not "a few, probably". If you can't give that number, you just found your silent failure. The first step isn't the fix. The first step is seeing it at all.

SOURCES

  • Datadog: State of AI Engineering 2026 (~1/3 of errors in LLM spans are rate-limits)
SP

Szymon Paluch

ex-CTO · AI Strategy

Want to talk about your AI strategy?

30 minutes of substance. No sales pitch.

Book a call
Related posts
I passed Claude Certified Architect: decisions, not definitions
Claude Partner Badge — Claude Code: what it is
Model self-evaluation: the agent that grades itself