
You click Join Server. The loading screen appears. A few seconds later: "Connection Lost: Internal Exception: io.netty.handler.codec.DecoderException." You cannot connect. Other players might be fine or they might have the same issue.
This error means something went wrong during the network communication between your Minecraft client and the server. The client received data it could not decode. Here is every known cause and fix.
What the Error Means
Minecraft uses a library called Netty for networking. When the server sends a packet the client does not understand (or vice versa), Netty throws a DecoderException. The "Internal Exception" wrapper means it crashed the connection handler.
This is not a single bug. It is a category of errors. The actual cause varies.
Failed to Decode Packet: Read the Packet Name
Newer versions name the packet that broke, for example Failed to decode packet 'clientbound/minecraft:recipe'. Clientbound means the server sent it and your client could not read it. Here are three common ones.
Failed to decode packet 'clientbound/minecraft:custom_payload'
This is the plugin message packet. Mods and plugins use it to send their own data.
Usual cause: a mod mismatch. The server runs a mod you do not have, or a different version of it. A bug in one mod can also cause it, often only when you open one specific block or menu.
Fix: Install the exact modpack version the server runs, then work through Fix 4 below. If it only happens in one menu, update the mod that menu belongs to.
If the client or server log shows Tried to read NBT tag that was too big or Payload may not be larger than 1048576 bytes, the data went over a size limit. The Packet Fixer mod raises those limits; its page says to install it on both the server and the client. One exception: on a Fabric server that runs ViaFabric and ViaBackwards and has a mod using Fabric API's recipe sync, players on an older Minecraft version get the same NBT message, because that recipe sync packet is not translated. Join on the server's own version, or the server owner can add ViaVersion Recipe Fix, which Modrinth lists for Fabric 1.21.10, 1.21.11 and 26.1.
Failed to decode packet 'clientbound/minecraft:login_finished'
This is the Login Success packet, the last step of logging in. Minecraft 1.21.2 and newer use this name (1.21.1 calls it game_profile). The same problem can also read Packet login/clientbound/minecraft:login_finished ... was larger than I expected.
Usual cause: the client and whatever sent the packet disagree on its format. In the reports we found, that was a proxy, or a plugin that hooks into the connection, not updated for the client's version. One Velocity report on 26.2 turned out to be the AntiPopup plugin.
Fix: Join with the exact version the server lists. Server owners: update Velocity or BungeeCord, ViaVersion and any plugin that touches packets, then remove plugins one at a time until the error stops. ViaVersion's own issue form asks that Via plugins run on the proxy or on the backend servers, not on both.
Failed to decode packet 'clientbound/minecraft:recipe'
On 1.21.1 this is the Update Recipe Book packet.
Usual cause: a content mod on your client that the server does not have. It shows up when players join a Paper or vanilla server, such as a network lobby, with their modded profile. The Aether and a Cobblemon 1.7 snapshot both caused it this way. The Aether team marked it as not fixable on their side; Cobblemon patched its case.
Fix: Join servers without mods using a vanilla profile. On a modded server, match the server's mod list and mod versions exactly.
Fix 1: Version Mismatch
The most common cause. Your client version does not match the server version.
Check: Ask the server owner what version they run. Compare with your client version.
Fix: Change your client version. In the Minecraft Launcher:
- Go to Installations
- Click New Installation
- Select the matching version
- Play on that installation
If the server uses ViaVersion, it should accept clients on multiple versions. If you still get the error with ViaVersion active, the plugin might be outdated.
Fix 2: Corrupted Player Data
Your player data file on the server is corrupted. This happens after crashes during save operations.
Symptoms: You specifically cannot join. Other players can. The error appears immediately or within seconds of connecting.
Fix (server side):
- Stop the server
- Navigate to
world/playerdata/ - Find the file matching your UUID (use namemc.com to find your UUID)
- Rename it (e.g.,
uuid.dattouuid.dat.bak) - If a
uuid.dat_oldbackup exists, rename it touuid.dat - Start the server
This resets your player to the last backup state. You might lose some inventory or position data.
Fix 3: Packet Size Overflow
Some plugins send extremely large packets (massive scoreboard data, long chat messages, huge inventory screens). If a packet exceeds the buffer size, the decoder fails.
Symptoms: Error occurs when opening a specific menu, receiving a specific message, or near a specific area.
Fix (server side):
Increase the network compression threshold in server.properties:
network-compression-threshold=512
Default is 256. Setting it higher reduces compression but avoids encoding issues with borderline packet sizes. If the issue is a specific plugin sending oversized data, report it to the plugin developer.
Fix 4: Mod/Plugin Conflict
If you run mods on your client or the server runs modded (Forge/Fabric), incompatible mods can send packets the other side cannot decode.
Symptoms: Error occurs on modded servers. Vanilla servers work fine.
Fix:
- Try connecting without client mods (use a vanilla profile)
- If that works, re-enable mods one by one to find the conflict
- Update the conflicting mod to the latest version
- Check if the mod and server mod versions match
Fix 5: Firewall or Antivirus Interference
Some security software or firewalls inspect network packets and corrupt them in the process. The server sends valid data, but it arrives corrupted at your client.
Symptoms: The error happens on every server, not just one. Clearing Minecraft data does not help.
Fix:
- Temporarily disable your firewall and antivirus
- Try connecting
- If it works, add Minecraft (javaw.exe) to the firewall/antivirus exception list
- Re-enable your security software
On Linux, check if your VPN or proxy is interfering. Some VPNs modify packets.
Fix 6: Corrupted Chunk Data
If the error only happens when you approach a specific area, the chunks there might be corrupted.
Fix (server side):
- Stop the server
- Use a region file editor (like MCA Selector) to find and delete the corrupted region file
- Start the server. The chunks regenerate
Alternative: Teleport the affected player away from the corrupted area before they load the bad chunks:
In the server console (before the player joins):
tp PlayerName 0 100 0
This only works if the player is not in the corrupted chunk area when they connect.
Fix 7: Clear Client Cache
Sometimes the client's local data is corrupted.
- Close Minecraft
- Navigate to
.minecraft/(Windows:%appdata%\.minecraft\) - Delete the
server-resource-packsfolder - Delete the
options.txtfile (this resets your settings) - Restart Minecraft
Fix 8: Java Arguments
If you use custom Java arguments or a custom Java installation, incompatible JVM flags can cause encoding issues.
Fix: Reset your Java arguments to default in the launcher. Remove any custom JVM flags and try with:
-Xmx2G -Xms2G
Diagnosis Flowchart
- Does the error happen on all servers? If yes, it is a client-side issue (Fixes 5, 6 client-side, 7, 8)
- Does it happen only on one server? Client/server mismatch or server-side issue (Fixes 1, 2, 3, 4, 6)
- Does it happen to all players or just you? Just you = player data corruption (Fix 2). Everyone = server config or plugin issue (Fixes 3, 4)
- Does it happen at a specific location? Corrupted chunks (Fix 6)
- Does it happen when opening a menu? Plugin sending bad packets (Fix 3, 4)
- Does the error name a packet (custom_payload, login_finished, recipe)? See Failed to Decode Packet above
Most of the time it is Fix 1 (version mismatch) or Fix 2 (corrupted player data). Start there.
Space-Node servers run on stable infrastructure with automatic backups. If player data corrupts, restoring from a backup takes minutes through the panel. Get started here. Running a modpack? See Minecraft modpack hosting.