Hi everyone,
I’m currently running a local Minecraft server in Mexico with a player base of 10–50 concurrent users. I decided to build my own host to avoid monthly third-party fees, but since my ISP (IZZI) uses CGNAT and doesn’t provide unique public IPs, I have to rely on Playit.gg for connectivity.
Lately, Playit has been causing constant connection drops. It’s very inconsistent; sometimes the server stays up for 4 days without issues, and other times it crashes after just 3 hours.
The setup and the problem:
OS: Ubuntu Server 24.04 using Pterodactyl and Docker.
The Trigger: The issues seem to start when using UDP tunnels for Bedrock.
Previous Attempt: I tried switching Playit to “TCP only.” This made the server extremely stable, but Bedrock players experienced unplayable lag, so I had to switch back to UDP/TCP.
Current Infrastructure:
In a desperate attempt to fix this, I rented a small VPS to host my Proxy (Velocity) and connected my local backend servers to that proxy using multiple UDP/TCP tunnels. I hoped that by using separate tunnels, if one failed, it wouldn’t take down the whole network. Unfortunately, it didn’t work. As soon as the errors start, the console gets flooded with:
“Failed to read data”
“Error establishing connection to [Server IPs]”
Playit console logs show these frequent errors:
Failed to send setup channel request
Session expired
Failed to authenticate
io error connecting to claim address
I’m at my wits’ end. Since I can’t get a dedicated IP from my ISP, I’m stuck with tunnels. Has anyone dealt with this “Session expired” loop on Playit or found a more stable way to handle Bedrock/Java hybrid traffic over CGNAT?
Any advice would be greatly appreciated!