Recently, I was trying to post a new video to my Instagram account. After going through the entire upload process and pressing the final submit button, Instagram informed me that my "post could not be shared. Please try again." So I tried again. And when that attempt failed too, I tried again a few hours later. And again the next morning. No dice.

Instagram's error message isn't informative: "Your post cannot be shared. Please try again."

Now, I'm annoyed. I've used the same device to upload countless other videos before. I recorded the video in the exact same way as the others. The format hasn't changed. And the video isn't too long; in fact, it's shorter than usual, sitting at around 30 seconds long. So I don't believe I'm the problem.

But maybe Instagram changed their process in the three weeks that elapsed since my last successful video post. In which case, maybe I am the problem. If so, I want to know what I did wrong! And if not, should I assume the error is server-side? In which case, how long will this bug persist? Are there workarounds? Is Instagram even aware that some of their users are struggling to post? I need some acknowledgement!

Instead, all I have to work with is this "please try again" nonsense. What a terrible error message. Why? Insanity is doing the same thing over and over and expecting different results. Yet here I am, repeatedly attempting to upload the same video without making any changes. Every time it fails, I get more annoyed. My only feedback is to "please try again." I'm not sure how that fixes anything.

It's commonly said that exceptions are exceptional. They're rare. Because of that, developers often spend little time crafting useful error messages. But this isn't okay. Especially in the case of outward-facing errors, developers shouldn't share useless "please try again" instructions without explaining how that helps. Of course, they shouldn't expect their users to decode cryptic error messages either.

Python understands this. In the latest version, Python 3.10 included multiple changes to improve their error messaging. It's so good that I'm embedding some screenshots from the link for those of you who won't open it:

Python 3.10 changed the "invalid syntax" error message to reveal the cause of the error: "'{' was never closed."
Python 3.10 added a potential solution in its error message about invalid syntax: "Perhaps you forgot a comma?"

This is what good error messaging looks like. These error messages acknowledge problems exist, share potential causes, and even provide solutions to try! The suggested solutions are actions that make end users feel empowered rather than helpless.

Instagram, you have a billion monthly active users. Do better.