Where do the errors go when nobody is watching?
ENGINEERING
OCTOBER 5, 2026

Where do the errors go when nobody is watching?

4 min read
BACK TO BLOG

A customer hitting a broken signup does not file a ticket. They leave. If nothing is watching, broken and healthy look identical from where you sit.

Here is a failure mode I have lived through, in my own business, with my own money.

A form on my website had never once delivered an email. Not "sometimes failed" — never worked, for months. Every submission returned a cheerful success message to the person filling it in. There were no errors in any log. The function reported that it had run.

The enquiries went nowhere. I found out by testing it myself, on a whim, long after it mattered.

Why didn't anything tell me?

Three reasons, and all three are general.

The failure was downstream of the success. The code sent the message and got back a normal response. The message was dropped later, by the mail provider, for a reason that never travelled back. From inside my own system, everything worked.

The success path was too forgiving. The function reported success if either of two things worked. One of them always worked. So the broken half was covered by the healthy half, permanently and silently.

Nothing was watching the outcome, only the attempt. I was measuring "did it try to send" when the only question that mattered was "did one arrive".

The shape worth remembering

A system whose failures are silent gets more reassuring the more broken it is.

Complaints stop, because the people who would complain never reached you. Logs stay clean, because nothing threw. The dashboard is green. The absence of bad news is the symptom.

So the question to ask about anything you have built is not "is it working". It is: if this were completely broken right now, what would I see? If the honest answer is "exactly what I see today", then you have no monitoring — you have a feeling.

What "watching" actually requires

Not a platform. Not a budget. Three things.

Errors reach a human, not a log file. A log nobody opens is an archive of things you did not find out. Route unhandled errors to email or a phone, and make sure you have seen one arrive at least once, on purpose.

The check has its own heartbeat. This is the part people skip. If your monitor dies, its silence looks exactly like good news. Make it write a timestamp every time it completes, so "nothing is wrong" can be told apart from "nothing ran".

Something tests the real outcome. Not that the function executed — that the email landed, the payment settled, the row appeared. I now have scheduled jobs across my own business doing exactly this, and more than one of them exists because a thing I assumed was fine had not been fine for weeks.

The cheap version, today

Pick the one path in your app where failure costs you a customer. Signup, checkout, the contact form.

Break it on purpose. Put in a bad key, point it at a dead address, whatever makes it genuinely fail. Then sit back and count how long it takes for anything to tell you.

If the answer is "nothing ever did", you have learned the most valuable thing available about your app today, and it cost you ten minutes.

Then fix it, and break it again, and watch the alert arrive. A check you have never seen fire is a rumour.


Run the free website check — it looks for the faults a site will never report about itself, which is the same idea from the outside.

If you suspect something in your business has been quietly not working, tell me what you are unsure about. In my experience the thing people are vaguely uneasy about is usually the thing.

SHARE
4 min read
Read More

MORE ARTICLES

MSUFCU turned its own website off. That was the right call.
Engineering
Engineering

MSUFCU turned its own website off. That was the right call.

A PHP flaw became unauthenticated remote code execution with no workaround, so banks and governments went dark on purpose. What happened in Lansing, and why.

I gave an AI agent a wallet and a spending limit
Engineering
Engineering

I gave an AI agent a wallet and a spending limit

An autonomous client paid for its own API call in stablecoins. The payment was the easy half — the interesting half is the record of what it was refused.

The demo worked because you built it on your own data
Engineering
Engineering

The demo worked because you built it on your own data

The most expensive failure in applied AI is the one that looks like a success. Here is the test that catches it, and why it has to be able to fail.

How to read the arithmetic on a views guarantee
Engineering
Engineering

How to read the arithmetic on a views guarantee

A real offer promises 10 million views in 90 days or you do not pay. Here is the division that tells you what you are actually buying.