Prepay & save up to 40% · 3 months −20% · 6 months −30% · 12 months −40% Client Area
Guide

Minecraft io.netty AnnotatedConnectException: How to Fix It

Minecraft··9 min read
Voxel islands at dusk separated by water, linked by a glowing cyan trail — fixing a Minecraft server connection error

You click join, the screen sits there, and Minecraft hands you a wall of text ending in io.netty.channel.AbstractChannel$AnnotatedConnectException. It looks like a crash. It is not. It is Minecraft's networking layer telling you it never managed to open a connection to the address you gave it — and the last few words of that message tell you exactly which half of the problem you have. Almost every guide on this error ignores those words. This one starts there.

Read the last line first: refused or timed out?

The exception always ends with a reason, and there are two common ones. They are opposite problems and they need opposite fixes:

  • Connection refused: no further information — your packets arrived. A machine at that address answered and actively rejected them, because nothing is listening on that port. The address is right; the server is not running there.
  • Connection timed out: no further information — nothing answered at all. Your client waited and gave up. Something between you and the server is dropping the traffic, or that address simply has no machine behind it.

Put crudely: refused means "nobody home at that door", timed out means "the door never got found". Refused points at the server process and its port. Timed out points at the path — firewall, port forwarding, NAT, or a wrong address.

One more thing worth knowing before you touch anything: this is a Java Edition error. Netty is the network library Java Edition uses, so a Bedrock client on console or mobile will never show you this exception — it reports its own, unrelated messages. If your friends are on Bedrock and you are on Java, you are looking at a crossplay setup question rather than this error.

Sixty seconds of triage

Do these three checks before you change a single setting. They cost a minute and they decide everything that follows.

  1. Can you join any other server? Add a large public server to your list and connect. If that works, your client, Java and firewall are all fine and the problem is specific to your server. If nothing connects, the problem is on your machine or your connection.
  2. Can anyone else join yours? Ask one person on a different network. If they get in and you do not, the problem is local to you — skip to the client section. If nobody gets in, the server or its network is the culprit.
  3. Is the server console actually showing "Done"? A server that is still generating the world, or that crashed thirty seconds after boot, will refuse connections while looking perfectly alive in a panel.

Fixing "Connection refused"

Refused is the friendlier of the two, because it narrows things down hard: you reached the machine, so the address is right and nothing is blocking the path. Work down this list.

1. The server is not running

The single most common cause, and the easiest to misread. Check the console rather than the status light: you want to see the world load and finish. If the log ends in a stack trace, an OutOfMemoryError or a crash on a mod, the server died during startup and has been refusing connections ever since. Our out-of-memory fix guide covers that specific crash.

2. You are connecting to the wrong port

Java Edition listens on TCP 25565 by default. If your host assigned a different port — which is normal on shared hosting — you must type it: address:port. Leaving the port off sends you to 25565, where nothing is listening, and you get refused.

The reverse trap also exists: a server genuinely on 25565 with a port typed by hand from an old note will refuse just as fast. Copy the address from your panel rather than from memory.

3. server-ip has something in it

In server.properties, server-ip should be blank. The wiki puts it plainly: if empty, the server listens on all available IP addresses. Fill it in with your public IP, your LAN IP, or anything else you found in a tutorial, and the server binds to that one interface only — and refuses everything arriving on the others. This is a self-inflicted wound that people spend hours on because the server looks completely healthy. Empty the field, restart, try again.

4. The port moved and the domain did not

If you connect through a domain with an SRV record, the record carries both target and port. Change your server's port, or migrate to a new host, and a stale _minecraft._tcp.yourdomain record keeps sending players to an address where nothing is listening. Test by connecting with the raw ip:port instead — if that works and the domain does not, the record is the problem, not the server.

Fixing "Connection timed out"

Timed out means the packets never came back, so you are looking for whatever swallowed them.

1. Port forwarding — only if you host at home

A server behind a home router needs a forwarding rule for its port to the machine running it. The wiki is explicit that the port must be forwarded when the server sits behind NAT. Two details people get wrong: forward to the server machine's current local IP (DHCP moves it — set a static lease), and remember that outside players must use your external IP, not the 192.168.x.x one you see locally.

None of this applies on a rented server. That is most of why people move: the ports are already open and routed.

2. You are testing from inside your own network

A classic false alarm. If you host at home and try to join via your own public IP, many routers will not loop that traffic back to you, so it times out — while everyone on the internet connects fine. Players on your LAN should use the host's internal IP; port forwarding is not needed for those. Before you tear the router apart, have someone outside the house test it.

3. A firewall is eating it

On the server side, the OS firewall has to allow inbound traffic on the server port. On the client side, Windows Defender Firewall or third-party security software can block Java's outbound connection — the tell is that no server connects, not just yours. Allow javaw.exe for the Java version the launcher is actually using, and note that a Minecraft update can install a new Java runtime at a new path, which silently loses the old exception rule.

4. VPNs, Hamachi and friends

Virtual network adapters reorder which interface Java goes out through, and a VPN exit can be blocked by the server or land in a different region entirely. If you have Hamachi, Radmin, a work VPN or a game "booster" installed, disable it and retry before you change anything else. If a virtual adapter is left over from software you removed, delete the adapter too — a disabled VPN and an orphaned adapter are not the same thing.

5. Your ISP put you behind carrier-grade NAT

If you self-host, forward the port correctly, and outside players still time out, check whether the IP in your router's status page matches what a "what is my IP" lookup shows. If they differ, you are behind your ISP's NAT and you cannot port forward at all — no amount of router configuration will fix it. The options are a static IP from your ISP, a tunnel, or a hosted server.

When the client is the problem

If nothing at all connects — your server, public servers, anything — stop looking at the server:

  • Restart the launcher and the machine. A stale Java process holding a socket really does cause this, and it costs two minutes to rule out.
  • Flush DNS (ipconfig /flushdns on Windows) if you connect by domain and the address recently changed. A cached old record produces both errors depending on what now sits at the stale address.
  • Check the mod list. Connection-modifying mods, proxies and some performance mods can break outbound connections. Launch vanilla once to compare.
  • Confirm the Minecraft version. A version mismatch usually gives you a clear "Outdated client/server" message rather than this exception — but a client pointed at a proxy or modpack launcher that failed to switch versions can time out instead.

When it really is the host

Sometimes you have done everything right and the answer is unglamorous: the machine your server lives on is overloaded, has been null-routed during a DDoS attack, or is down. The signs are worth knowing — the error appears for everyone at once, it comes and goes on a schedule that matches peak hours, and the panel itself is slow or unreachable.

That is a hosting problem, not a configuration problem, and no amount of editing server.properties will fix it. A server that is only reachable when the neighbours are quiet is telling you something about how the node is sold. If that is the pattern you are seeing, moving is the fix — our Minecraft hosting buyer's guide covers what to ask before you pay for the next one.

Frequently asked

What does io.netty.channel.AbstractChannel$AnnotatedConnectException actually mean?

It is Netty — the network library Java Edition uses — reporting that it could not open a TCP connection to the address you entered. The useful part is the reason at the end of the message: "connection refused" means the address answered and rejected you, "connection timed out" means nothing answered.

Is it my fault or the server's?

Try joining any other server. If other servers work, the problem is with your server or its address. If nothing works, it is your client, your firewall or your connection.

Why does it say "no further information"?

That phrase comes from the operating system, not Minecraft. The socket failed and the OS had no extra detail to attach. It is not a separate error and there is nothing to look up in it.

I can connect with the IP but not the domain. Why?

Your DNS or SRV record points somewhere the server no longer is — usually after a port change or a host migration. Fix the record, or wait out the TTL if you just changed it.

Does this error happen on Bedrock?

No. Netty is Java Edition's networking layer, so this exact exception is Java-only. Bedrock clients report different messages for the same underlying problems.

Will more RAM fix it?

Only if the server is crashing out of memory during startup and refusing connections as a result — in which case the console will say so. A connection error on its own is not a memory problem.

Running your own server and tired of being your own network engineer? A hosted Minecraft server comes with its ports already open and routed, which removes most of this page from your life.

Deploy a Minecraft server →

Related guides

Share:Twitter / XFacebookRedditWhatsApp

Ready to play?

Deploy your server in under 60 seconds — 7-day money-back guarantee.

Browse games