This is Minecraft saying «the connection broke» without saying why. The useful part is the very end of the line, after the last dot — that is what tells you which side gave up.
What you are seeing
Internal Exception: io.netty.handler.timeout.ReadTimeoutExceptionInternal Exception: java.io.IOException: An existing connection was forcibly closed- Players drop out mid-game, often at the same moments.
Why it happens
Netty is the networking library Minecraft uses. A ReadTimeoutException means one side stopped answering long enough to be given up on — usually the server being frozen, not the network. A forcibly closed or Connection reset means the connection was cut, which points at the network path instead.
What to do
- Read the last word of the exception
ReadTimeoutExceptionpoints at the server.IOExceptionwithresetorforcibly closedpoints at the connection between you. - If it is a timeout, check TPS at the moment it happens
A server frozen by a garbage collection pause or an overloaded tick stops answering, and clients time out. That is a performance problem wearing a network costume.
- If it is a reset, test the route
Run our latency test, and try from a different connection — mobile data is a quick way to rule your own network in or out.
- Check whether everyone drops at once
Everyone at the same instant is the server. One person repeatedly is that person's connection.
You know which of the two it is. From there, timeouts go to the performance articles and resets go to the networking ones.
One disconnect during a world save or a large operation is normal. It is the pattern — same time of day, same action, same player — that identifies the cause.