dev-tools
Glossary ↗Silent Failure
A silent failure is one that produces no error. Nothing crashes, nothing alerts, every status code is the one you wanted, and the system carries on returning output that happens to be wrong. It is the characteristic failure mode of anything built on a language model, and it is why conventional monitoring gives such reassuring answers about AI features. The reason is structural. A traditional system fails by being unable to continue: a null reference, a rejected connection, a timeout. A generative system always has something to return, so a missing document, a truncated context, a tool that quietly returned an empty list, or a prompt change that shifted the tone of every answer all resolve to a fluent response delivered on time. Uptime, latency and error rate can all look excellent throughout. The same shape appears well outside the model. A sync that stops importing new records but keeps reporting success, a permission filter that stops filtering, a scheduled job that runs and processes nothing, a directive that removes a site from search results — none of them raise anything. What they have in common is that the check being performed is whether the process ran, not whether it did what it was for. Detecting them requires asserting on outcomes rather than on execution. Expected volumes and their absence, distributions that should be stable, sampled outputs scored against criteria, a small set of known inputs whose answers are checked on a schedule, and reconciliation against a second source that would have to be wrong in the same way. Each of these is more work than an error handler, which is exactly why it is skipped. The organisational tell is the discovery path. When failures are found by a customer, by a colleague who happened to look, or by a quarterly review, the system has silent failures regardless of how green its dashboards are — and the interval between the failure starting and somebody noticing is the number worth reducing.
Related terms