Guidefor players3 min read
Fixing "Outdated client" and "Outdated server" in Minecraft
The error names which side is behind, and the protocol number tells you exactly which versions can connect. How to read it, and the three real ways to fix it.
Read the error first
Minecraft tells you which side is behind, and people routinely fix the wrong one.
- "Outdated server" means your client is newer. The server is running an older Minecraft version.
- "Outdated client" means your client is older. The server has moved on without you.
There is no third case. Whichever it says, the fix is to get both ends onto the same protocol.
Why the version number is not the real answer
The connection does not check version names. It checks a protocol version: a single integer both sides send when they first talk. If the numbers differ, the connection is refused before anything else happens.
That matters because protocol numbers and version names do not move together:
- Several releases can share one protocol. 1.21.7 and 1.21.8 both speak protocol 772, so a 1.21.7 client joins a 1.21.8 server without complaint even though the names differ.
- Snapshots use a completely separate range. Snapshot protocol numbers are offset by a very large constant so they cannot collide with release protocols. A snapshot client never joins a release server.
Every version page on this site shows its protocol number and lists the other versions that share it, so "can these two connect" is a lookup rather than a guess.
Fix one: change your client
The fastest fix, and the one that needs nothing from anyone else.
In the official launcher, create a new installation, pick the exact version the server runs, and launch that. You can keep as many installations as you like side by side; they do not interfere with each other.
If you do not know what the server runs, most server list websites show it, and many servers put it in their MOTD. Ask in their Discord if not.
Fix two: the server updates
If you run the server, this is your call rather than a fix you apply.
Do not update just to clear this error for one player. A server update moves the Java requirement, converts the world irreversibly, and breaks plugins that have not caught up. Upgrading a server covers the order to do it in.
Fix three: let the server accept several versions
This is the one most public servers use, and it is invisible to players.
ViaVersion lets clients on newer versions join an older server, by translating their packets. ViaBackwards does the reverse, letting older clients join a newer server. Both are server-side plugins; players install nothing.
They work well and they are not magic. Translation covers the protocol, not the content, so blocks and items that exist in one version and not the other cannot be represented properly to a client that has never heard of them. On a survival server this is usually invisible. On a server built around brand-new blocks, older clients will see substitutes.
See supporting many client versions for how that is set up.
The case that looks like this and is not
If the error appears only for some players, and they are all on the same version as everyone else, the problem is not the protocol. Check:
- A proxy in front of the server. If Velocity or BungeeCord is on a different version than the backend server, the proxy reports the mismatch and the message looks identical.
- A modded client. A client with a mod that changes the handshake can present a protocol the server does not expect.
- A mod set mismatch on a modded server. Some loaders refuse the connection with a version-shaped error when the mod list does not match.
Checking before you connect
Two facts settle every case of this:
- What protocol your Minecraft version speaks.
- What protocol the server's version speaks.
Both are on the version pages, along with every other release that shares the same number. If the two protocols match, the connection will be accepted. If they do not, one of the three fixes above is the only way through.