The "Internal Exception: io.netty.handler.timeout.ReadTimeoutException" error means the client and server stopped hearing from each other long enough for Minecraft to drop the connection. It is usually network trouble or an overloaded server, not a corrupted install. Here is how to narrow it down and fix it for good.
Quick answer
"Internal Exception: ReadTimeoutException" means the client and server stopped hearing from each other for too long. The usual causes are an overloaded server with low TPS, packet loss on the player's connection, or a slow join on a big modpack. Fix server lag first, then test the connection for packet loss.
A read timeout just means one side stopped hearing from the other. The trick is knowing whether it's the server, your connection, or a slow modpack join — match your situation and go straight to the fix:
| If… | Likely cause | Fix |
|---|---|---|
| Everyone times out at once | Server overloaded (low TPS) | Fix server lag / TPS |
| Only you time out | Your network / packet loss | Go wired, test the route |
| It happens on join to a modpack | Big join over a low timeout | Raise compression threshold, more CPU |
| Drops after idling a while | Firewall/VPN/NAT killing idle links | Keep-alive / check the NAT timeout |
Cause 1: the server is overloaded (low TPS)
If the server can't keep up, it stops responding in time and clients time out. Check TPS and fix lag — see "Can't keep up". This is the most common cause on busy/modded servers.
Cause 2: network / packet loss
Wi‑Fi drops, a bad route or congestion cause read timeouts. Test with a continuous ping; if you see loss, go wired and check the route — see packet loss.
Cause 3: a huge join (modpacks)
Heavy modpacks send a lot of data on join; a low timeout can trip before it finishes. On the server, raising network-compression-threshold and ensuring enough CPU helps big modpacks connect.
If only one player times out, it's their connection. If everyone does at once, it's the server lagging or its host network. That tells you which side to fix.
Read timeout = no response in time. Fix server TPS, rule out packet loss, and give modpack joins enough CPU.
Cause 4: a firewall, VPN or NAT dropping idle connections
Some routers, VPNs and corporate firewalls silently drop a TCP connection that goes idle, for example while you are AFK or tabbed out. Minecraft sends keepalive packets, but a strict NAT timeout or an overloaded VPN hop can still eat them, which shows up as the exact same read timeout. Try connecting without a VPN, or from a different network, to rule this out.
Cause 5: an outdated client, server or proxy
A version mismatch between the client, the server and any proxy (Velocity/BungeeCord) can cause stalls during the handshake that look like a read timeout. Make sure every part of the stack is on a supported, matching version — see outdated server/client.
How to prevent read timeouts
- Keep TPS at 19-20 with sensible lag-reduction settings rather than letting it dip under load.
- Use a wired Ethernet connection instead of Wi‑Fi for anything latency-sensitive.
- Do not overload a small plan with too many mods/plugins or player slots.
- Host on a low-latency, DDoS-protected network so floods don't masquerade as random timeouts.
- Watch server health over time rather than only after a crash — a status page catches TPS drops early.
Related errors
If this looks like a different connection problem, check "Connection Refused" (the server never accepted the connection at all), outdated server/client version mismatches, or general lag and ping troubleshooting.
Minecraft is a trademark of Mojang Synergies AB / Microsoft. ESAGAMES is an independent hosting provider, not affiliated with or endorsed by Mojang or Microsoft.