Internal Exception: io.netty.handler.codec.DecoderException

A DecoderException disconnect means the client and server disagree about what packets look like. Usually a mod mismatch or an out-of-date optimiser.

An Internal Exception: io.netty.handler.codec.DecoderException (sometimes with a long stack trace below it) means the connection between your client and the server got a packet it did not understand and dropped you. It is almost never the server's fault on its own; it is a mismatch between the two ends.

The four common causes

Mod mismatch. One side has a mod the other does not, or has it at a different version. Forge tells you this loudly at the join screen; Fabric and Quilt sometimes fail quieter and produce a DecoderException instead. Open Dashboard → your server → Files → /data/mods, list the mods, and make sure your client folder matches exactly (same files, same versions).

Resource pack too large or corrupted. Server resource packs above 250 MB or with a bad zip header can fail mid-transfer and show up as a decoder error after the loading bar finishes. Disable the pack temporarily in Files → /data/server.properties by clearing resource-pack= and try again.

A misbehaving plugin. Plugins that inject custom packets (custom titles, custom GUIs, anti-cheat) can send a packet the client cannot parse if the client is on a different protocol version. Remove the most recently installed plugin from Files → /data/plugins and restart.

An outdated optimiser mod on the client. Sodium, Lithium, OptiFine, and a few performance forks lag behind Minecraft release. After a Minecraft update, the client mod can stay on the old packet format for a week or two. Update the client-side optimiser, or pin back to a Minecraft version both ends agree on.

Reading the trace

The line after DecoderException usually names the packet that failed. If it includes a mod or plugin's package name (net.minecraft. is vanilla; com.someauthor. is third-party), that is your culprit. Pull that mod from the server (or the client if you can identify which side sent the bad packet) and restart.

Where to go next

Last updated 2026-05-23. Notice a mistake? Tell us.

Cookies