We developers think you do a good job keeping our apps running smoothly.
But when you have the inevitable outage from time to time, you need to stop telling our customers it’s our fault.
Currently, when I fail (such as a typo in my source code), a visitor to my site sees this:
And currently, when you fail (like this morning), a visitor to my site sees this:
Same message. In other words, when you fail, you’re telling the world it is your customer’s fault.
You apparently assume it has to be this way because many of your platform errors are indistinguishable from actual app errors, so you have no way to differentiate which error message to display.
But that is NOT true.** Here’s your fix. **
AFTER you have confirmed you are having trouble and posted that on your status screen, MANUALLY flip a switch that redirects the default “app error” screen (which you host on AWS) to a different file:
Then once you have things back to normal, flip the switch back to your normal app error message. (Of course, flipping the which-app-error-screen-do-we-show switch doesn’t actually have to be manual, it might happen whenever your internal alarms are triggered. My point is, even if you do it manually it’s really simple and ‘good enuff’.)
The worst case scenario is that apps with an actual app error shows a message suggesting it might not be the app’s fault. But if your underlying platform is unstable, so what?
It’s simple. It’s the right thing to do.
Other than that, keep up the good work.
P.S. Why I love Heroku: To my surprise, this blog post hit the top spot on HN at least briefly. My blog started throwing some app errors. I went to the command line and typed
heroku ps:scale web=10
to throw more dynos at it and was back up. Gotta love that.