A drop in connection might be caused my numerous things. The most prominent reasons for loosing connections are, in my opinion:
- loss of packets resulting in a timeout on either end,
- the server being busy,
- the game world being full / overloaded,
- your connection being reset due to being afk or similar,
- an error on the server side, and
- the server or instance restarting.
In an ideal world, all error codes these events would produce would be able to tell you more about the problem you encountered. Unfortunately, the error messages are produced by the server who only has limited knowledge about you or your connection and the software running on your machine which has only limited knowledge about the server.
When you are disconnected actively by the server, usually because you time outed due to not issuing any controls for a period of time, the server can produce a very accurate message, hence you will get a notification that you are being returned to orbit. This is essentially also an error message but one where the server was sure what happened. The same happens with restarts of the instance you are in.
However, when you are disconnected because, for example, your ISP encountered some problems routing packages, the server does not know what happened. It only knows you are not responding and will drop the connection. The game on your end will struggle to reconnect and not be able as the server dropped the connection. However, it does not know why. It simply knows that it did not receive any packages and can't reconnect. But what happened? Did the server crash? Is maintenance being performed? Is the server busy or has blacklisted your IP? There is no way to be sure if the server does not also provide some feedback.
In an optimal system the server and client would work together to produce a global view on the problem and they could figure it out. Unfortunately, due to some constraints on load and connectivity, that is not going to happen. In a sub-optimal but still good scenario, the software will perform an analysis of causes and determine what is the most likely reason for your loss of connection and give you that feedback. This is why you might see different error codes. Another reason is that the software caches errors and shows you a different one every time in an attempt to give you more diverse feedback to increase the probability that one of them will fix your problem.