I’ll help to clear things up a bit.
Error codes are like when you cough. It signifies that something is wrong, but there can be a lot of things that cause it. Figuring out what is causing it can take some investigation, but it’s a valuable thing to have. Without the ability to cough, a lot of things can go wrong with the human body. Similarly, if there was no disconnection error when the game client has lost connection to the game server, the game client would see everything around it come to a halt and stay that way until the player closed it. In the event that we know something has gone wrong and we know the game client isn’t going to be able to recover its connection, an error needs to occur so that the game client is able to get into a state that allows for re-connection attempts to be made. So in that sense, the error code is always going to be there because it serves an important purpose. The code itself is a feature that helps to identifies potential problems. However, these problems are not always with the game and can occur anywhere along the connection from the computer that is running the game client to the server that is hosting it. We’ve actually seen some pretty interesting concurrency graphs where a major thunder storm that went across a majority of the US a few years ago caused notable spikes in our USA player totals. As the game continues being developed and many of the server crashes get fixed, the likelihood of these errors being caused by something wrong with the game decreases.
With regards to the frustrations that are caused when a game client is disconnected, those are issues that need to be addressed with game design. As I mentioned in the above wall of text, there’s a lot of things in the world that can cause a disconnection that have nothing to do with the game code. One of my favorite examples being that copper pipes near internet connections can cause signal disruption when water flows through them. Keeping in mind that there will always be disconnections that are outside of our control, in game systems need to take into account that disconnections are going to happen to some people and these game systems need to be fault tolerant enough to allow them to continue playing where they left off once they get back into game.