Issue with Velocity/GeyserMC

I set up tunnels for Java and Bedrock edition, and only the first works. I spent several hours troubleshooting and here’s the data so it might help people here develop a solution.

  • Debug from mcsrvstatus: “Failed to read from socket”
  • From my own testing with my router settings, port forwarding only UDP makes the server unreachable - and returns the exact same error on debug. Even though Bedrock uses UDP, for some reason it still seems to require TCP to connect. So… maybe making Minecraft Bedrock tunnels TCP+UDP could solve it?
  • Java tunnel worked from the beginning without issue.

I hope the devs behind PlayIt find a way to fix it based on this information.

From my own experience I noticed that UDP ports are weirdly bugged.
They work fine if the agent is open normally, hijacking the entire screen.
However if opened as plugin, docker or systemd service they just stop working.

Your best bet is opening TCP+UDP port and using that.
It worked fine for me.

I’m doing that as of now, but that’s just not ideal in terms of security. I run a tunnel on Java, should be able to do the same with Bedrock servers and get them to work… BDS is terrible and most Bedrock server software is light years behind Java options - so I use Geyser to allow crossplay.

You could try to use only one TCP+UDP tunnel for both Java (TCP) and Bedrock (UDP).
There seems to be no interference as both protocols use seperate ports.