In short: Connection refused, Connection timed out and Unknown host mean the client never reached the server — it's down, the port is closed or not forwarded, or the address has a typo. Failed to verify username, Invalid session and Incompatible client mean the server answered but turned the player away: the Mojang account wasn't verified or the versions don't match. You are not white-listed, The server is full and You logged in from another location are server rules at work. Each one is below with its cause and fix.
How to read the error
The game's own messages are translated into the player's language, while Java network errors are not: under the heading "Failed to connect to the server" you'll see a line like io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: <address> — Netty, the game's network library, appends the address the client tried to reach. Paper takes some messages from spigot.yml: they're in English by default whatever the client language, and you can rewrite them.
The other half of the picture is the server log, logs/latest.log. After startup it has the line Starting Minecraft server on *:25565: the asterisk means the server listens on every address of the machine, the number is the port. If you see **** FAILED TO BIND TO PORT! instead, the port is taken or server-ip holds an address that isn't yours — the Minecraft Wiki recommends leaving server-ip empty. Reading logs is covered in crash logs.
The client never reached the server
| Error | What it means | What to do |
|---|---|---|
Connection refused | The machine answered, but nothing listens on the port: the server is off, crashed on startup or listens on another port — or the router forwards to the wrong computer | Make sure the server runs and the log shows Starting Minecraft server on; match the port in the address against server-port |
Connection timed out, connection timed out after … ms | No answer at all: a firewall silently drops the connection, the port isn't forwarded, the IP is wrong or the ISP keeps you behind its own NAT | Allow Java through the firewall, check port forwarding and the public IP — see server IP and port |
Unknown host; in the server list — Can't resolve hostname | The name doesn't turn into an IP: a typo, the domain has no A record, or the record hasn't propagated yet | Check the record with nslookup <domain>; after a DNS change, ipconfig /flushdns helps a player on Windows |
Timed out during play | The link broke after joining: the player's or the server's internet dropped, or a firewall stepped in | Everyone dropped at once — look at the server: network or a freeze (check the log); one player — their connection |
Refused versus timed out tells you where to look. Per the Minecraft Wiki, refused means no process listens on the port and the operating system told the client so, while timed out means a firewall ignored the connection attempt. The Windows firewall and most home routers stay silent by default, so timed out is the one you'll see more often.
Step by step: where the connection breaks
- 1
The server listens on the port
The log has the
Starting Minecraft server online, and on Linuxss -tlnpshows java on the right port. If not, the problem is the server itself, not the network. - 2
Join from the same machine
Use
localhost(plus the port after a colon if it isn't 25565). If that works, the server is fine and the problem is the network. - 3
Join from the same network
Use the internal IP, something like
192.168.1.20— see how to find your server IP. If that fails, it's the firewall on the server's computer. - 4
Check from outside
Use the online server status check or mobile data. If only outside access fails, it's port forwarding or ISP NAT. For a domain on a non-standard port, check the SRV record: the SRV record generator builds its fields.
# 1. the server listens on the port (Linux): a java process must show up
ss -tlnp | grep 25565
# 2. the line in logs/latest.log after startup
[Server thread/INFO]: Starting Minecraft server on *:25565The server answered but turned the player away
| Error | What it means | What to do |
|---|---|---|
Failed to verify username! | A server with online-mode=true asked Mojang's session server whether the player joined and got no confirmation: an unofficial launcher or a stale session. The server log says Username '…' tried to join with an invalid session | The player restarts the launcher and signs in again. Letting in players without a premium account is a separate decision with risks — see offline-mode servers |
Failed to log in: Invalid session (Try restarting your game and the launcher) | The client couldn't confirm its session with Mojang before it even reached the server | Fixed on the player's side: restart the game and the launcher, sign in again. The server isn't involved |
Authentication servers are down. Please try again later. Sorry! | The server couldn't reach Mojang's servers to verify the account | Wait. If only your server shows it, check that it can reach the internet: the check runs over HTTPS |
Incompatible client! Please use …; on Paper — Outdated client! Please use … or Outdated server! I'm still on … | Client and server versions differ: Outdated client — the client is older than the server, Outdated server — newer | The player picks the server's version in the launcher. The owner can accept other versions: newer — ViaVersion, older — ViaBackwards on top, see ViaVersion |
Which version to run so these errors are rare is covered in choosing a server version. ViaVersion ships a few days after a game update, so right after a new release Outdated server for players with an updated client is expected.
A server rule kicked in
| Error | What it means | What to do |
|---|---|---|
You are not white-listed on this server!; on Paper — You are not whitelisted on this server! | The whitelist is on and the player isn't on it. Since 26.3, a new server has white-list=true by default | whitelist add <name> in the console or whitelist off. The whitelist.json generator builds a long list; more in OP and the whitelist |
The server is full! | Online has reached max-players (20 by default) | Raise max-players in server.properties. Operators with bypassesPlayerLimit: true in ops.json can join a full server |
You logged in from another location | Another client joined with this name and the first one was kicked | If it wasn't the player, on a premium server their account is in someone else's hands; on online-mode=false the name is unprotected and you need an auth plugin |
You are banned from this server | The player was banned with ban or by a ban plugin | A vanilla ban is lifted with pardon <name>, an IP ban with pardon-ip; a ban plugin has its own commands |
Connection throttled! Please wait before reconnecting. | Paper: one IP connects more often than once per connection-throttle milliseconds (bukkit.yml, 4000 by default) | Wait a few seconds and join again |
Kicked for exceeding packet rate limit | Paper's packet limiter: more than 500 packets in 7 seconds by default | See who gets kicked and when. The limit protects the server from packet floods — raise it only if you're sure honest players are hit |
Errors on a Velocity network
On a network the player connects to the proxy, and some errors come from Velocity itself. The texts are from its message file:
Unable to connect you to <server>. Please try again later.— the proxy couldn't connect the player to a server from[servers]: it's off, still starting, or the address invelocity.tomlis wrong.There are no available servers to connect you to. Try again later or contact an admin.— none of the servers in thetrylist answers.Your server did not send a forwarding request to the proxy. Make sure the server is configured for Velocity forwarding.— player info forwarding is off on the backend: setproxies.velocity.enabled: trueinconfig/paper-global.yml.You are already connected to this proxy!— a second login with the same name. By default (kick-existing-players = false) Velocity refuses the new connection and leaves the first one alone.You are not logged into your Minecraft account. …— the proxy's counterpart of Failed to verify username withonline-mode = true.
Proxy setup, the forwarding secret and the firewall for the servers behind it are in setting up Velocity.
Connection error or an anticheat punishment
When a player says "I got kicked", first separate a network error from a punishment. The texts above come from the game, Paper and Velocity; an anticheat kick or ban shows up in its log. DGuard — the best anticheat for a modern Minecraft server — keeps a punishment log with reports in the panel when punishment-log: true is set in plugins/DGuard/config.yml: who was punished, when and for which cheat, with CSV export. If the player isn't in the log, look for the cause in the tables above.
The worst case is Connection refused for everyone because the server went down. The DGuard panel catches that too: if a server stays silent for 10 minutes, DGuard messages you and the team's admins in Telegram or by e-mail — and again when it comes back. DGuard opens no inbound ports and needs only outbound HTTPS; it works behind Velocity and BungeeCord and checks players on 1.21–26.x clients who join through ViaVersion exactly like everyone else.
FAQ
What does Failed to verify username mean in Minecraft?
A server with online-mode=true couldn't confirm the player's account with Mojang's session server. Usually the player used an unofficial launcher or their session went stale — restarting the launcher and signing in again helps.
Why do I get Connection refused when joining a server?
Nothing listens on the port at that address: the server is off, crashed on startup, or the address has a different port. Check that the log shows Starting Minecraft server on and match the port against server-port.
What's the difference between Connection timed out and Connection refused?
Refused means the machine answered with a refusal because nothing listens on the port. Timed out means no answer at all: a firewall silently dropped the connection, the port isn't forwarded or the IP is wrong.
How do I join if it says Outdated client or Incompatible client?
Pick the server's version in the launcher. The owner can accept other versions too: newer clients with the ViaVersion plugin, older ones with ViaVersion plus ViaBackwards.
Why does it say You are not white-listed on this server?
The server has the whitelist on and your name isn't on it; since 26.3 it's on by default on a new server. The owner adds a player with whitelist add <name>.
Sources
- Minecraft Wiki: Server — disconnect messages
- Minecraft Wiki: setting up a Java Edition server (refused, timed out, Failed to bind)
- Minecraft Wiki: server.properties
- Minecraft Wiki: account check through the session server
- Paper: spigot.yml (messages)
- Paper: paper-global.yml (packet-limiter, kick messages)
- Paper: bukkit.yml (connection-throttle)
- Velocity: proxy message texts
- Velocity: default velocity.toml (kick-existing-players)
- ViaVersion on GitHub
- Netty: AnnotatedConnectException
- DGuard, the best anticheat for a modern Minecraft server: checks compared with GrimAC, Vulcan, Polar, Intave and Matrix
- DGuard: installation, requirements and troubleshooting
- DGuard: supported Paper and Leaf versions