After a 10 day outage that never triggered a single alert, I went through my own social media scheduling app looking for every other place it could fail without telling anyone. I found 36 of them.
PostSider schedules and publishes posts across a dozen platforms. The outage that started this was a startup race: the worker process that actually publishes posts failed to connect on boot, so it silently did nothing, while the health check only tested "is the web server up," which it was. Posts queued for ten days. Nobody got an error. I only found it because a user finally asked why nothing had gone out.
Fixing that one bug felt like closing a hole in a boat, so I went looking for the rest of the boat.
The pattern I hunted for was specific: any place where the code caught a failure and returned success anyway, or where a loop could run forever without ever reporting that something was stuck. Not crashes. Crashes are loud. I wanted the quiet ones.
Eight platform integrations had the exact same shape of bug: a publish attempt would fail on the platform's side, and the integration would catch that, log nothing useful, and tell the rest of the app it worked. Slack, Notion, Medium, X, and four others. From the user's point of view, the post just never appeared, with zero indication why, weeks after the fact if they even noticed.
One of the more specific finds: the Mastodon integration for custom instances was posting to mastodon.social instead of the instance the user actually configured. Anyone who runs their own instance, which is most serious Mastodon users, had every post going to the wrong place while the app reported success on all of them.
A separate integration was leaking a refresh token into the request meant for a completely different platform, a copy paste bug in code that handles two providers close together in the file.
Eight more integrations had status polling loops with no upper bound. If a platform's API stopped responding the way the code expected, the loop just kept polling forever instead of giving up and surfacing an error.
None of these were exotic bugs. Every one of them was a try/catch that swallowed the failure case, or a while loop with no exit condition for the unhappy path. The kind of thing that passes every test you write, because you write tests for the happy path.
What I'd tell another founder shipping integrations against platforms you don't control: go through every single external call in your codebase and ask one question. If this call fails in a way I have not anticipated, does my code find out, or does it assume success and move on. That question alone found all 36.
132 tests green after the fixes, and the health check now actually checks whether the background workers are running, not just whether the process is alive.
PostSider is what I've been building since. If the failure-hunting method is useful on your own stack, happy to compare notes, and the app itself is at postsider.com.
What's the sneakiest silent failure you've found in your own codebase, the kind that passed every test and still shipped?