I am constantly having issues with HDMI and I never really know what the actual issue is. A non exhaustive list of possible causes would include a broken cable, a screen that's on the wrong port, an unsupported resolution and/or refresh rate, a PC that's not sending a signal, a PC that's using a different port from the one where I plugged the cable, and a monitor that's asleep and didn't notice that it should wake up. Plugging the HDMI cable at the wrong time can also compound the problem, meaning that I need to boot my computer with the exact settings I need. Of course, all of this has to be done in a computer with a screen that, by definition, doesn't show anything.
You know what has gotten me out of this problem more than once? VGA. Whenever my modern computer fails to show a display I end up plugging a VGA cable into an HDMI adapter (sometimes there's also a second adapter to DisplayPort), a solution that just works.
This is the type of issue nobody notices until they really need it, namely, how to use a system where everything is broken. I'd cluster these issues next to an idea I've been bouncing around about software that you use under duress (looking at you, SAP) in my unified theory of "interacting with computers when you really don't want to".
Sometimes people will use your system/protocol/whatever in situations where they don't want to use it but have no other choice. Think of a work meeting where the other part is using a tool you hate (a.k.a. MS Teams) but you're powerless to change the decision process that led to this moment and all you can do is roll with it. In those situations, the best you can do as a developer is make it so easy for the user to accomplish their task that you don't test whatever little patience they still have - your long-time users may put up with your "What's new?" pop-ups, but your other users will be thankful if you spare them.
Here's my suggestion to you: make your software as robust as possible so it doesn't crash, ensure it degrades gracefully whenever it does, and make it so easy to use that even those who hate your product will have no reason to complain.
Random story from a random Android App: the "Photo Manager" app that I was using in my phone was updated a couple weeks ago. Opening my photos now requires the following steps:
- Tap the icon to open the app.
- Deny access to my location, because you don't need that to show me photos.
- Deny access to my calendar, because you don't need that either.
- Get sent back to the main screen, because the app will not run without this information.
This is a typical marketing tactic to try and sell my personal data for a higher price, but I was surprised at how brazen it was: most apps would still work, as selling me bad ads is better that selling none, but apparently the cost of me having their app installed is too high. Or maybe it was bad error handling. There's no way to know.
I was ready to uninstall it (which I did) and call it a day, but then I looked a bit deeper. It turns out that I was wrong, and the app is not developed by some obscure adware company in an effort to catch some low-hanging fruit. Instead, it was (probably) sold to a company first, which then repacked it with ads in an effort to catch some low-hanging fruit. Do you have an app you'd like to sell them? Here's a link. I'm willing to bet this specific app was sold around January 2019, as that would explain why they have gotten (almost) nothing but bad reviews for a year straight.
I don't really have a deeper point. I was just surprised at how quickly the app went to hell, and thought entrepreneurial people would appreciate it as a case study on what not to do.