Nobody heard it, because every warning was written to a file nobody reads.
Early one Friday morning, a client's landing page stopped opening in every browser. The security certificate had expired. Our monitoring flagged the outage within seven minutes and, once we were on it, the site was back in four.
The cause went back weeks. During a server migration, that certificate stayed tied to an account that didn't exist on the new server. From then on it tried to renew twice a day. Sixty attempts, sixty failures, not a single alert.
Three things made it worse:
1. When we closed the migration we checked that the site opened, not that the certificate could renew.
2. The renewal tool fails silently.
3. We were watching the domain's expiry, not the certificate's. They are two different expiries and only one had a probe.
The most valuable part came after. Our agents ran the renewal test on all thirteen certificates on the server and ten more failed: the website, the WhatsApp bot, the automations, the CRM. They all expired on the same day, 45 days later. It would have been the same incident times ten. The agents fixed all ten and verified the thirteen in green.
The underlying decision was ours: fixing isn't enough, you have to find out sooner. Today a probe warns 21 days before every expiry. With it, this incident would have warned us three weeks before the outage.
The rules we now apply on every server we run:
1. Anything that runs on its own (renewals, backups, alerts) is tested by running it once, not by looking at it.
2. An error nobody reads is not a warning.
3. Every expiry gets its own probe.
4. A postponed step needs something that picks it back up.
A site that's down gets noticed. Ten about to go down don't.