0

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:

  1. Spend approximately 30 seconds in the void at the correct X and Z coordinates, but falling rapidly.
  2. Move to the correct Y coordinate, see the terrain, and see their items load in.
  3. Get disconnected immediately after.
  4. See Connection Lost / Timed Out on 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:

  1. His computer is on the same LAN as the server.
  2. 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?

2
  • Is the LAN behind a NAT? That is, are any of these IP addresses involved anywhere in the network?
    – Kevin
    Apr 23, 2022 at 7:43
  • @Kevin The LAN is behind the NAT of a home router, so the server machine has an internal address in the 192.168.0.0/24 range. Port 25565 is forwarded by the router to the machine’s local IP (192.168.0.xx).
    – tjcaul
    Apr 25, 2022 at 8:35

1 Answer 1

3

Sounds like the server has a terrible uplink (probably less than 5Mbps), this would explain why the server operator doesn't get kicked while others do.

A bit more technical explanation: the default server view distance is 10 chunks, so when a player joins/teleports (10*2)^2 chunk gets sent to the client which - depending on those chunks - can be 5MB+ in size. The client expects a keep alive packet every 20 second from the server, if it doesn't get one it will disconnect with the mentioned timeout message1. If we calculate with an average 5MB size, then for a single player you'd need 5/20*8=2Mbps upload speed. Also as other players load smaller parts of the world and/or the server opearator (or anyone else on their LAN) uses the internet that uplink usage can easily exceed it's maximum resulting in timeouts.

Troubleshooting tips & possible fixes:

  1. Measure the speed from the server, to verify if it's indeed a speed issue
  2. Check cables, there might be a break or crosstalk reducing the troughput
  3. Lower the view-distance in server.properties to reduce the data sent

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .