XavierFok
← all posts

What actually breaks AI automations

2026-08-15 · by Xavier Fok

# What actually breaks AI automations

I have run AI automations daily for a couple of years now, and the way they break bears almost no resemblance to the dramatic version you hear online. Nothing goes rogue. Nothing becomes too smart. The real failures are small and quiet and boring, and the quietness is what makes them expensive. A loud failure gets caught and fixed within the hour. A quiet one runs wrong for a week before anyone realises it happened.

What follows are field notes rather than a scare story. Five ways my own automations have actually broken, each of which has cost me real time, and then the habit I build around now so that breakage surfaces in seconds instead of surfacing in a complaint from someone downstream. If you run any AI in production, or you are about to, this is the material I wish someone had handed me at the start.

The input quietly changed

The most common failure by a wide margin. An automation almost always sits downstream of something it does not control. A form, a website, a file someone else produces, an email in an expected format. Any of those can change at any moment with no warning. Someone renames a spreadsheet column to make it tidier. A site you pull from adjusts its layout. A supplier starts formatting their emails slightly differently.

The cruel part is that the model rarely throws an error when this happens. It does its best with the wrong input and produces confident, plausible garbage. I have lost more hours to this one category than to everything else on this list combined.

The lesson I eventually accepted is that an automation is only as stable as whatever feeds it, and the things feeding it are mostly outside your control. So assume the input will change, and verify it still looks the way you expect before trusting it. A tiny check at the front door, confirming the columns still carry the right names or the email still contains the field you need, catches nearly all of this for almost no effort. It feels paranoid right up until the day it saves you from shipping a week of quiet garbage.

The silent failure

The scariest entry on the list, because by definition you never watch it happen. A step fails without making any noise. A model returns an empty answer and the next step treats empty as fine. A call times out and gets skipped. A file never gets written and nothing complains. The automation keeps running end to end, looking healthy the entire way, while producing nothing, or producing nonsense.

I once had a pipeline show green for days while doing no work at all. An early step was failing and returning an empty result, and everything downstream accepted that emptiness as valid input. The experience left me with a phrase I now repeat constantly. Green does not mean working. Green means nothing shouted loudly enough to be heard.

It also changed how I build. I now assume that anything which can fail silently eventually will, so every step has to prove it did its job, with output that gets checked rather than presumed. Treating an absence of news as good news is exactly the reasoning that kept that pipeline green for days.

The model is confidently wrong

This failure mode belongs to AI specifically, and people underestimate it more than any other. A conventional program that breaks tends to stop and produce an error. A model that breaks hands you a fluent, well formatted, entirely wrong answer, delivered in exactly the tone it uses when it is right. It invents a fact. It misreads a number. It follows your instruction in a way you never intended. None of it looks like failure, because the output is clean and confident.

This is why raw model output never flows directly into anything that matters in my systems. Wherever a wrong answer would be costly, the model proposes and a human or a hard rule disposes. The confidence in the prose tells you nothing about the correctness of the substance, and the moment you begin trusting tone as a proxy for accuracy, you are queued up to be burned by it.

The glue between the tools

This one surprised me the most in my first year. An automation is rarely a model in isolation. It is a model wired into an inbox, a spreadsheet, a database, some external service with credentials. A huge share of total breakage happens in those connections rather than anywhere near the model. A login token expires and a step just stops. A service changes its rules, or spends an afternoon down. The network drops mid run.

The model can be flawless and the automation still falls over, because the plumbing around it gave way. I kept expecting the clever part to be the fragile part, and it kept being the opposite. In my systems the model has consistently been the most reliable component. The glue fails far more often. So I now treat every external connection as something that will eventually give out, and I watch the joints between pieces at least as closely as the model itself.

The cost crept up

The quietest failure of the five, and just as real. There is no crash. Volume grows gradually until you are making ten times the calls you started with. A retry loop fires more often than you realise and doubles your call count. Each request carries more text than the task needs. None of this degrades the output, so nothing alerts you. The automation works fine. It simply costs more each month, and because individual calls are cheap, the climb hides inside the total until you deliberately look.

To be plain about it, these are paid services and this is real money leaking, so I treat cost as one more thing that drifts. I watch volume and the bill the same way I watch output quality, because a cost leak is a genuine failure, just a failure of the wallet rather than the output. What makes it insidious is the absence of any single moment where it went wrong. No crash to point at. It worsens a little each week, slowly enough that you adapt without noticing, until the bill is double and you cannot say when that happened. Logging volume over time gives the slow climb somewhere to show up where I will actually see it.

How I build for all five

Everything above collapses into one working principle. Assume it will break, then arrange for it to break loudly and safely. In practice that means a short list of habits. Inputs get checked before they are trusted, so a changed shape gets flagged instead of silently mangled. Every step proves it did its job, converting silent failures into loud ones. Confident model output never flows into anything costly without a check or a person in between. External connections get watched as closely as the model, since that is where most breakage lives. And cost gets monitored alongside correctness, because drift in the bill is failure too.

None of this is clever, and none of it demos well. It is the unglamorous discipline of building something that tells you the moment it goes wrong. Chasing an automation that never fails is a trap, since no such thing exists. The achievable goal is an automation that fails in seconds, in front of you, rather than for a week behind your back.

Who this is for

If you are experimenting with AI for fun on weekends, none of this matters yet, and you should go break things freely. The moment an automation carries something real, something a paying customer or your own livelihood depends on, this stops being optional and becomes most of the job.

The gap between a demo and a system is entirely about the day things break. A demo works once, on a clean input, in front of a forgiving audience. A system keeps working on bad inputs, through an outage in a service it depends on, on the morning a format quietly changed underneath it, because it was built expecting all of that. Wiring up a model and watching it work once is within anyone's reach. Building the thing that survives contact with a messy world, week after week, is the actual skill, and it consists almost entirely of planning for failure in advance.

More field notes from running this stuff daily are on the [home page](/).

Get new guides and videos first — join the Telegram channel.