"Server closed" and "Internal Exception" errors explained
"Server closed" and "Internal Exception" errors explained
These are the most-googled and least-explained Minecraft error messages. They show up at different layers and mean different things. This article unpacks each.
"Server closed"
The full message is usually:
The server has closed your connection.
What it actually means: the server intentionally closed the TCP connection. Could be many reasons:
Server is shutting down. The most common cause. Server is restarting and closed your connection cleanly.
Idle kick. Many servers kick players who have been AFK too long. Some plugins implement this.
Manual kick. A staff member kicked you. Usually a message comes with it, but sometimes just "server closed."
Ban. You were banned. Could appear as "server closed" if the ban plugin doesn't send a proper kick message.
Anti-cheat triggered. Some anti-cheat plugins close connections on detection of suspicious activity.
Server crashed. Process died mid-session. Different from "Internal Exception" usually but can look similar.
Hosting provider auto-action. Some hosts will close your connection during attacks or maintenance.
How to diagnose
If you're the player:
- Check the server's Discord for restart announcements.
- Try reconnecting after 30 seconds. If it works, was a restart.
- If you keep getting kicked, ask staff.
If you're the admin:
- Check the server console / log at the time of the disconnect.
- Look for kick / ban events.
- Look for crash reports.
- If nothing's there, anti-cheat may be silently kicking.
"Internal Exception" errors
The full messages vary:
Internal Exception: io.netty.handler.codec.DecoderException: ...
Internal Exception: java.io.IOException: An existing connection was forcibly closed by the remote host
Internal Exception: io.netty.handler.codec.EncoderException: ...
These are lower-level network errors. The connection broke unexpectedly, and the client / server's networking library (Netty) is reporting the failure.
Common variants:
Internal Exception: IOException, existing connection forcibly closed
The TCP connection was reset by the other side. Either:
- The server's network momentarily failed.
- The client's network momentarily failed (most common).
- A middlebox between client and server reset the connection.
If it's intermittent, especially during heavy gameplay: usually network.
If it's reproducible: could be a bug.
Internal Exception: DecoderException
The server received data it couldn't parse. Possible causes:
- A mod / plugin mismatch (server sending data the client can't understand).
- Corrupted packets (rare).
- A buggy plugin.
In a modded environment: check mod versions match between client and server. This is the #1 cause.
Internal Exception: EncoderException
The server failed to encode data to send to the client. Often a server-side bug.
Internal Exception: TimeoutException
The client (or server) didn't send a keepalive within the expected window. Either:
- Player's network had a brief gap.
- Server was unresponsive (heavy lag, freezing).
Frequent timeouts usually mean the server is overloaded.
Diagnostic flow
How to address each
For "server closed" (player side)
- Reconnect.
- If it persists, check Discord for staff announcements.
- If still failing, ask staff or check rules.
For "server closed" (admin side)
Check logs for the cause. Address based on which:
- Restart in progress: explain to players.
- Anti-cheat: review configs, may be falsely triggering.
- Manual kick: confirm with staff.
For "Internal Exception" (player side)
- Try reconnecting.
- Check your own network (wired ethernet, restart router).
- Update Minecraft client.
- For modded: confirm your mods match the server's.
- Try from a different network if possible.
For "Internal Exception" (admin side)
- Check server log for what was happening at the time.
- If "DecoderException" with specific class names, identify the offending mod / plugin.
- If "TimeoutException": server may be lagging. Profile.
- If frequent and you can reproduce: file a bug report with the relevant plugin / mod author.
Modded server gotchas
A frequent source of these errors on modded servers:
Mod version mismatch.
A player's mod is version 1.3.5; the server's is 1.3.6. Most mods crash hard with a clear error, but some show "Internal Exception" instead.
Fix: distribute the exact pack version. Pin versions in the modlist.
Mods that didn't load on one side.
A client has the mod; the server doesn't (or vice versa). Connection establishes but breaks during handshake.
Fix: confirm mod sets are identical.
Client-only mods on the server.
Server boots but has a "client-only" mod loaded. Server expects to send / receive client-only data; client doesn't know how. "Internal Exception."
Fix: remove client-only mods from the server. (See the custom modpack article.)
A specific failure pattern: "Internal Exception" with TPS issues
If players get random "Internal Exception" disconnects AND the server has low TPS:
The server's main thread is so busy that it can't process keepalive packets in time. The client times out.
Fix the server lag (entity audit, plugin audit). The disconnects will stop.
A specific failure pattern: "Internal Exception" only at specific times
Players disconnect at the same time every day (e.g., 2 AM your time).
Likely cause: a scheduled task (backup, world save, restart) is heavy enough to spike the server and disconnect clients.
Fix: investigate scheduled tasks. Spread them out or move them to truly low-activity hours.
"Connection lost" vs "Internal Exception"
Players sometimes see "Connection lost" instead. Mostly the same root causes (network broke), but Minecraft's wording varies by version and by what specifically failed.
In all cases, the question to ask is: was it the server or the client's network?
A simple test: run ping from the player's machine to the server during a normal session. If ping spikes coincide with disconnects, network is the cause.
The "ALL my players disconnected at the same time" case
Either:
- Server crashed.
- Server's network failed.
- Hosting provider had an incident.
Check the server log for crash. Check hosting status. Almost never a "weird coincidence."
Plugin / mod debugging
If a specific plugin is causing disconnects:
- Disable that plugin.
- Test with a few players.
- If disconnects stop: the plugin is the culprit.
- Check for updates, check config, or replace.
The shotgun approach (disable plugins one by one) is tedious but works.
When the error is misleading
Some patterns where the displayed error doesn't match the actual cause:
- "Connection reset" reported when the server crashed and stopped writing to the connection.
- "Internal Exception" when a player tries to use a hacked client and the anti-cheat kicks them silently.
- "Timed out" when in reality the server is overloaded but technically alive.
Treat the error message as a hint, not a verdict. Match against the server's logs at the time.
Conclusion
"Server closed" and "Internal Exception" sound scary but each maps to specific causes. Most are diagnosable from the server log. For players, "try reconnecting" handles a surprising number; persistent issues need admin attention.
The next time you see one, don't panic. Open the log. The answer is usually there.
Hosting your game server with AndroHost means we handle most of what's in this post for you automatically: tier sizing, SRV records, off-site backups, DDoS protection.
Keep reading
TPS dropped overnight and nothing changed, where to look first
You log in. The server is up. TPS is 12 where it was 20 yesterday. "Nothing changed." Players are starting to complain.
Player can't join but everyone else can, a checklist
The server is up. 5 players are online and playing. But one player keeps getting some error and can't join. This is one of the most-puzzling support scenarios. The cause is on the player's side, the server's whitelist, or some interactio...
"Connection refused" on a Minecraft server, the full diagnostic tree
"Connection refused" is the most common error message that means something specific. It tells you: the network reached the host, but the host refused the connection. Different from "no route to host" (couldn't reach the host at all) or "...