The server is the vanilla 1.17.1 Minecraft Java server for Windows. The first player to join is always able to connect. However, any other player who joins when someone else is already playing has a high chance of experiencing the following:
- Spend approximately 30 seconds in the void at the correct X and Z coordinates, but falling rapidly.
- Move to the correct Y coordinate, see the terrain, and see their items load in.
- Get disconnected immediately after.
Connection Lost / Timed Outon a dirt screen.
The disconnection message is the client is followed by an error in the server log:
[12:34:56 INFO]: tjcaul lost connection: Timed out
Also, if any player teleports in any way (such as by a command block or respawning), they will be disconnected with the same messages in the client and server. After reconnecting, they will be in the new location; the teleport is successful.
One more quirk: the operator seems to be ‘favoured’ by the issue. The operator joins using the public IP of the server, and plays on a different computer from the one the server is hosted on. The only things that differentiate him from other players are:
- His computer is on the same LAN as the server.
- He has Operator permissions on the server.
The operator is ‘favoured’ in that he has a low chance of being disconnected if he joins when others are playing, while others have a higher chance of being disconnected if he is playing. That means he should join last if multiple people want to play together.
The operator is also immune to being disconnected when teleporting.
How could I fix or troubleshoot one or multiple of these issues?