Skip to content

Minecraft Players Can't Connect: Every Error Message Explained

Match the exact error your players see - version mismatch, whitelist, online-mode, mod mismatch - to its cause and its fix on a Minecraft Java server.

Updated August 19, 2026
Minecraft

Minecraft is unusually good at telling you what went wrong — the client prints a specific sentence for almost every failure, and each sentence maps to exactly one cause. The problem is that the sentences are short, most guides paraphrase them, and a paraphrase sends you down the wrong path.

This guide is organised by the exact text the player sees. Find the message, read the cause, apply the fix. It covers Java Edition on your Minecraft server. For the game-agnostic version of this problem — offline in the panel, missing from a server browser, only you affected — see Players Can't Connect to My Server; this guide is its Minecraft-specific counterpart.

Copy the error before you change anything

Every message below is quoted verbatim from the game files of the current release. If what your player sees does not match word for word, you are looking at a different problem than the one you think.

Error Message Lookup

What the player sees What it actually means Section
Incompatible client! Please use 26.2 Client and server are on different Minecraft versions Version mismatch
Incompatible version! (in the server list) Same thing, seen before connecting Version mismatch
Can't resolve hostname The address itself is wrong or misspelled Wrong address or port
Failed to connect to the server + Connection refused Right machine, nothing listening on that port Wrong address or port
Failed to connect to the server + Connection timed out Nothing answered at all — wrong address, or blocked Wrong address or port
Failed to verify username! Auth failed against Mojang; the account is not valid for this server online-mode and authentication
Failed to log in: Invalid session (Try restarting your game and the launcher) The player's launcher session went stale online-mode and authentication
You are not white-listed on this server! Whitelist is on and this player is not on it Whitelist rejection
The server is full! max-players reached Server full
You are trying to connect to a server that is running NeoForge, but you are not. Modded server, unmodded (or wrong-loader) client Mod and plugin mismatch
Received a registry entry that is unknown to this client. Fabric server has content mods the client is missing Mod and plugin mismatch
You are banned from this server Exactly what it says Other kicks
Nothing — the server never appears in the list Status replies suppressed, or genuinely down Runs but shows offline

Before Anything Else: Is It Actually Up?

Open the Console tab and look for the line the server prints when it has finished starting:

[Server thread/INFO]: Done (18.412s)! For help, type "help"
Console output

Until that line appears, nothing can connect — and on a large or heavily modded world it can be minutes away. If the console has stopped short of it, or shows a stack trace, you have a startup problem rather than a connection problem: go to Reading Minecraft Server Logs and Crash Reports.

The other thing to take from the Console tab is the Address at the top left. Copy it rather than typing it from memory — that habit alone removes a large share of these tickets.

Version Mismatch: The Most Common Cause by Far

A client on a different Minecraft version than the server is rejected during the handshake, before login even begins. The player sees:

Incompatible client! Please use 26.2
text

The version in that message is the server's version, not the client's

Minecraft fills that message in with the version the server is running, whichever side is actually out of date. The instruction is therefore literal and always correct: switch the launcher profile to the version named and the player gets in. It also means the message never tells you which side moved — the wording is identical either way.

Before connecting, the same mismatch shows in the Multiplayer list as Incompatible version! in place of the ping.

Behind a proxy, the wording changes

BungeeCord uses its own messages for the same situation: Outdated client! Please use <version> when the client is behind, and Outdated server! I'm still on <version> when it is ahead. Those two sentences are BungeeCord's, not Minecraft's — if you see either of them, the rejection came from your proxy rather than from the backend server. See Minecraft Server Networks: Setting Up a Velocity Proxy.

Where the mismatch comes from

  • The player auto-updated. The launcher's "Latest release" profile follows Mojang, so a client can jump a version overnight while your server stays put.
  • You updated the server. Everyone who has not switched profiles is now locked out.
  • You are on a fork. Paper, Purpur, Spigot and the mod loaders each track a specific Minecraft version — paper-26.2-112.jar is a 26.2 server, and a 26.1 client cannot join it. Minecraft Server Software Compared covers which fork tracks what.

The 2026 version numbering, briefly

Java Edition dropped the 1.x prefix in 2026. Releases are now YY.D — year, then drop number — so the current release is 26.2 (16 June 2026) and the last 1. release was 1.21.11. If a guide tells a player to "use 1.20.1", check whether that guide is simply old. Updating Your Minecraft Server covers the numbering and the upgrade path in full.

26.1 and newer need Java 25 on the server

This is not a client-side issue, but it produces the same complaint. Every release from 26.1 onwards requires Java 25; 1.20.5 through 1.21.11 needed Java 21. If your server was moved to a 26.x jar without its Java runtime being moved too, it will not start at all — and "nobody can connect" is how that gets reported. Mojang publishes the requirement per version in its own version manifest, and PaperMC states the same minimum in its getting started guide. The startup error it produces is covered in Reading Minecraft Server Logs and Crash Reports.

Wrong Address or Port

Several different failures hide behind "it won't connect", and Minecraft distinguishes them clearly. A failed direct connect puts Failed to connect to the server on screen with the underlying Java exception underneath it — that second line is the one to read.

Client shows Meaning Do this
Can't resolve hostname in the server list, or Unknown host on connect DNS could not turn the name into an address at all Check the spelling. If you use a custom domain, check the record still exists
java.net.ConnectException: Connection refused The machine answered and said nothing is listening there Right IP, wrong port — or the server process is stopped
Connection timed out Nothing answered at all Wrong IP, wrong port, or something is dropping the packets
Can't connect to server in the server list The list ping got no usable reply Same three causes; try a direct connect to narrow it

The official Minecraft server setup tutorial draws the distinction precisely: a refusal means the packets arrived and the operating system replied that nothing was listening, while a timeout means a firewall silently discarded them. A refusal is the more useful of the two — it proves you have the right machine.

The port is part of the address

Minecraft's default port is 25565, and a bare address like play.example.com only works when the server is on that exact port. On our plans the allocated port is frequently something else, so the address players need is IP:PORT — for example 203.0.113.10:25566. Take both halves from the Address on the Console tab, and paste them into Multiplayer → Add Server exactly as shown.

Two related notes:

  • Do not edit server-port in server.properties by hand. Your server is bound to the allocation shown on the Network tab, and the panel keeps the file in sync on boot. Changing it there does not move the server; it just breaks the next start. Extra ports come from the Network tab.
  • server-ip should stay empty. It defaults to blank, which means "listen on every interface". Putting an address in it that the machine does not own is the classic cause of a bind failure at startup. Every key mentioned on this page is documented in Minecraft server.properties: The Complete Reference.

The Server Never Started

If the server is stopped or crashed on boot, every client gets a timeout or a refusal and none of the messages above apply. The give-away is that the Console tab never reached the Done line.

When it worked yesterday, the cause is nearly always a Startup tab variable that changed (those apply on the next start), a config file edited by hand that no longer parses, a mod or plugin built for a different Minecraft version, or a Java version mismatch on a server moved onto 26.x. Each prints a specific error: Reading Minecraft Server Logs and Crash Reports walks through identifying them from logs/latest.log.

online-mode and Authentication

online-mode defaults to true, which means the server checks every joining player against Mojang's account database. Three different failures come out of that check, and they are not interchangeable.

Failed to verify username! — the server asked Mojang about this player and did not get a valid answer. In the console you will see the matching line:

[User Authenticator #1/ERROR]: Username 'Steve' tried to join with an invalid session
Console output

In practice this means the player does not have a legitimate, logged-in Minecraft account — most often a cracked or offline-mode client trying to join an online-mode server.

Failed to log in: Invalid session (Try restarting your game and the launcher) — the player's launcher session has expired, before the server is meaningfully involved. The instruction in the message is the fix: quit the game and the launcher, then sign in again. Common after switching Microsoft accounts.

Authentication servers are down. Please try again later. Sorry! — Mojang's side, not yours. It resolves on its own; the console logs Couldn't verify username because servers are unavailable.

Turning online-mode off is not a fix

online-mode=false stops the server checking accounts at all. The Minecraft Wiki is blunt about the consequence: anyone can then connect claiming any username, including yours, and take your operator status with it. It is only defensible on a server with no internet exposure — and if you run it anyway, the whitelist becomes the only thing standing between your world and the first person who types your name.

Two neighbouring settings produce login rejections that look like authentication problems:

  • enforce-secure-profile (default true) requires the joining player to have a Mojang-signed chat key. A client with a corrupted or expired profile key sees Invalid signature for profile public key. followed by Try restarting your game. — and that is genuinely the fix. A client whose system clock is wrong gets the neighbouring Expired profile public key. Check that your system time is synchronized, and try restarting your game.
  • prevent-proxy-connections (default false) kicks a player when the network they appear to be connecting from does not match the one Mojang's authentication server saw. If you have turned this on, players on VPNs, mobile data and some ISPs will be rejected apparently at random. Turning it back off is usually the right call.

Whitelist Rejection

You are not white-listed on this server!
text

Unambiguous. The whitelist is enabled and this player is not on it. From the panel Console:

> whitelist add PlayerName
> whitelist reload
> whitelist list
text

Operators are whitelisted implicitly and do not need adding. Minecraft Whitelist and Ban Management covers the whole workflow, including whitelist.json and offline players.

Two behaviours that cause confusion:

  • whitelist on does not remove players already in the world. That is what enforce-whitelist is for: set to true, non-whitelisted players are kicked when the whitelist file is reloaded. It defaults to false.
  • The name must match the account exactly. The entry is stored against the account's UUID in whitelist.json, so a player who has since changed their username is still whitelisted — but one added with a typo never was.

The whitelist default is changing

white-list has defaulted to false on every release to date. Minecraft Wiki records that in a 26.3 snapshot the default flipped to true, so a freshly generated server.properties on that release and later will start whitelisted. 26.3 has not been released yet — as of 19 August 2026 the current release is still 26.2 — but when you do move to it, check this key before wondering why nobody can join a brand-new server.

Server Full

The server is full!
text

max-players defaults to 20. Check the player count in the panel before assuming anything is wrong — a full server is working correctly. Raising the cap is a server.properties edit followed by a restart, subject to the slots on your plan. A cap your hardware cannot actually feed shows up as lag rather than as rejections.

Mod and Plugin Mismatch

This splits cleanly, and the split matters more than anything else in this section.

Plugin servers (Paper, Spigot, Purpur) do not require anything of the client. Plugins are server-side. If your Paper server has forty plugins, a completely vanilla client still joins normally. So if players cannot connect to a plugin server, the cause is somewhere else on this page — not the plugins. See How to install plugins for Minecraft Java Edition.

Mod servers (Forge, Fabric, NeoForge) generally do require a matching client, and each loader rejects a mismatch with its own wording.

NeoForge and Forge

The loader compares the mod list on both sides during the handshake and refuses on any disagreement. The messages are specific:

Message Meaning
You are trying to connect to a server that is running NeoForge, but you are not. Please install NeoForge Version: <version> to connect to this server. Vanilla client, modded server
You are trying to connect to a server that is not running NeoForge, but you have mods that require it. A connection could not be established. Modded client, vanilla server
Your client is missing the following mods, install these mods to join this server: Client needs mods the server has
The server is missing the following mods, remove these mods from your client to join this server: Client has mods the server does not
The following mod versions do not match, install the same version of these mods that the server has to join this server: Right mods, wrong versions

Each of the last three appears above a table naming exactly which mods are at fault, with a You have / Server has column pair. Screenshot that table — it is the whole answer. In the server list, before connecting, NeoForge annotates the entry with Incompatible FML modded server or Server mod list is not compatible.

Fabric

Fabric does not check the client's mod list by default. A vanilla client can join a Fabric server that only runs server-side mods — which is exactly why performance mods are popular on Fabric servers. It fails when a mod adds content: Fabric API's registry sync then sends the client blocks, items or entities it has never heard of, and the client disconnects with:

Received a registry entry that is unknown to this client.
This is usually caused by a mismatched mod set between the client and server.
See the client logs for more details.
The following registry entry namespaces may be related:
text

The namespaces listed are the mod IDs. That list tells you which mods the player is missing.

The practical fix for either loader

Publish an exact pack rather than a mod list. A CurseForge or Modrinth modpack link installs the same loader version and the same mod versions on every client in one click, which removes this entire class of ticket. How to Install a Minecraft Modpack Server covers the server side, including the separate Server Files download that most packs publish; How to install mods for Minecraft Java Edition covers loose mods.

Java and Bedrock Clients Are Not Interchangeable

A Bedrock player — console, mobile, Windows 10/11 — cannot join a Java server by typing its address, and vice versa. They are different network protocols on different transports: Java speaks TCP on port 25565 by default, Bedrock speaks UDP on 19132. There is no error message to read here, because the two never establish a connection at all; the Bedrock client simply reports that it cannot reach the world.

Your options:

Note that even with Geyser, Bedrock clients cannot load Java mods. Cross-play pairs well with a plugin server and poorly with a heavy modpack.

The Server Runs but Shows Offline

The console reached Done, but the entry in the Multiplayer list shows as unreachable.

  • enable-status defaults to true. Set to false, the server suppresses status replies entirely: it appears offline in the list while still accepting connections perfectly. If direct connect works and the list says otherwise, check this key first.
  • hide-online-players hides the player list from the status reply only. The server still shows as online.
  • pause-when-empty-seconds defaults to 60. With nobody online, the server pauses after a minute; the first join of the day can therefore feel slow while it wakes up. This is normal.
  • Give it a moment. A server that has just started may not answer the first ping.

Only One Player Cannot Connect

If everyone else is in, the server is fine and the problem is on that player's side.

  1. Have them try another network. A phone hotspot takes thirty seconds and splits the problem in half. If it works on mobile data, it is their home network, ISP or VPN.
  2. Check their version. Their launcher may have auto-updated.
  3. VPNs. A VPN alone can do it; with prevent-proxy-connections=true on your side it certainly will.
  4. Have them delete and re-add the server entry. A stale entry with an old port is commoner than it should be.

Other Kicks Worth Knowing

These arrive after a successful connection, so they read as connection failures but are not:

Message Cause
You are banned from this server A ban in banned-players.json. pardon <name> from the console
Your IP address is banned from this server. An IP ban in banned-ips.json. pardon-ip <address> — see Whitelist and Ban Management
You logged in from another location The same account connected twice; the older session is dropped
Server closed The server stopped or restarted while they were connected
Timed out The connection was lost mid-session — usually the player's network, sometimes severe server lag
You have been idle for too long! player-idle-timeout is non-zero. It defaults to 0, meaning never
Kicked for exceeding packet rate limit rate-limit is non-zero. It defaults to 0, meaning disabled
Flying is not enabled on this server allow-flight=false and a plugin or mod is letting the player fly

One more that catches people out: require-resource-pack. It defaults to false, but set it to true and every player who declines your server resource pack — or whose download fails — is disconnected on the spot.

What to Send Support

Open a ticket with these and you will skip a round trip:

  1. The Address from your Console tab, IP and port.
  2. The exact error the player sees, word for word — a screenshot is ideal.
  3. Whether it affects everyone or one player.
  4. The Minecraft version and server type you are running, and the version the player's launcher is set to.
  5. The Console output from the failed join attempt, plus the last twenty lines before it.

Made with 💜 by GameServerKings

Need a Minecraft server?

Deploy an instantly-provisioned Minecraft server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $4.80 /month