Fix io.netty.channel.AbstractChannel$AnnotatedConnectException
This long Java class name is just Minecraft's networking library saying it could not connect. The words after the colon are the part that matters.
6 min read · Updated Oct 21, 2026 · By GuavaHost Team
The full message on a player's screen looks like this:
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /123.45.67.89:25565
Taking it apart:
io.nettyis Netty, the networking library Minecraft uses. Its name being in the error tells you nothing about the cause.AbstractChannel$AnnotatedConnectExceptionmeans a connection attempt failed and Netty attached the operating system's own explanation to it.Connection refused: no further informationis that explanation. This is the useful part./123.45.67.89:25565is the address it tried. Check this against your panel.
So ignore the first two thirds of the message. Read the suffix and the address.
The suffixes and what each one means
| Suffix | What happened | Most likely cause |
|---|---|---|
Connection refused: no further information | A machine answered and said nothing is listening on that port | Wrong port, or the server is offline |
Connection timed out: no further information | Nothing answered at all | Wrong IP, a firewall dropping traffic, or an address that goes nowhere |
No route to host | The network could not reach that address | A bad IP, or the player's network is broken |
Network is unreachable | The player's own connection has no route out | The player's network, not yours |
Connection reset by peer | The connection existed and then broke | See Internal Exception: java.io.IOException |
"Refused" and "timed out" are the two you will see most, and they point in opposite directions. Refused means something is there. Timed out means nothing is.
If it says refused
Something answered on that IP, which means the IP is almost certainly right. What is wrong is the port, or the server is not running.
- Check the server status. Sign in at customer.guavahost.com, open My servers and click Manage. The status next to the server name must read Online. If it reads Offline, press Start. If it reads Starting, wait.
- Check the port in the error against the panel. Copy the value next to Address at the top of the server page, or Server address in the Ports & network card on the Overview tab. Compare it with the address in the error, digit by digit.
- Check it is the game port. Servers often have more than one port, for RCON, query, voice or a map. Those ports exist and answer, but not to a Minecraft client. The Ports & network card labels them, and only the Server address is the one players use.
- Check
server-portinserver.properties. If that value does not match the port your server owns, the server binds something nobody can reach, or fails to bind at all.
Finding your server IP and port shows exactly which field to copy, which solves this more often than anything else on the list.
If it says timed out
Nothing answered, so either the address goes nowhere or something in between is silently dropping the traffic.
Work through Fix "Connection timed out" when joining a Minecraft server, which covers this in detail. The short version:
- Confirm the server is Online and has finished starting.
- Confirm the IP is right, not just the port.
- Have one player try at a time, so you know whether it is everyone or one person.
- If it is one person, suspect their firewall, their VPN, or a restricted network such as a school, office or hotel connection. When a firewall or network blocks your game port covers each.
The DNS and SRV trap
If your players connect with a domain name rather than an IP, there is a whole extra layer that can be wrong, and it produces this error in a confusing way.
Look at the address in the error message. Netty prints the address it actually resolved to, not the name the player typed. That is a free diagnostic:
- The IP in the error is not your server's IP. Your DNS record points somewhere else, usually because you moved server or changed location and never updated it.
- The IP is right but the port is not. You have a stale SRV record. An SRV record tells the client both the host and the port, so a player typing just
play.example.comcan reach a non-default port. If the port in the record is old, the client faithfully tries the wrong one and gets refused. - The error shows no IP at all, or the name itself. The name did not resolve. The record does not exist, has a typo, or has not propagated yet.
The SRV case is the sneaky one, because the address looks correct to everyone involved. The player typed the right name, the name resolves to the right machine, and the connection still fails on a port nobody mentioned. Minecraft custom domain and SRV record covers setting the pair up correctly, including updating both records after a location change.
DNS changes also take time to spread, controlled by the record's TTL. A change you made ten minutes ago may still be the old value for some players.
Narrow it down in one test
This takes thirty seconds and tells you which half of the problem you have.
- Open the Console tab in the panel and keep it visible.
- Have a player try to connect.
If a line appears mentioning the player or their address, the traffic arrived. The address is fine and the problem is after that point. If nothing appears at all, the traffic never got there, and the address, the port or the network in between is what to fix.
Then try the reverse: have the player connect using the raw IP and port from the panel rather than your domain name. If the raw address works and the domain does not, you have proved it is DNS, and you can stop looking anywhere else.
Common questions
Is AnnotatedConnectException a Minecraft bug?
No. It is the name of the error Minecraft's networking library raises when a connection attempt fails, so the class name itself carries no information. Read the words after the colon, such as "Connection refused" or "Connection timed out", because those come from the operating system and name the real cause.
What is the difference between refused and timed out here?
Refused means a machine answered on that address and reported nothing listening on the port, so the IP is probably right and the port is wrong. Timed out means nothing answered at all, which points at a wrong IP, a server that is not running, or a firewall dropping the traffic in silence.
The IP in the error is not my server's IP. What went wrong?
Your domain name resolves to the wrong place. Netty prints the address it resolved to rather than the name the player typed, so a mismatch there is proof that your DNS record is stale, usually after a server move or a location change.
Why does my domain fail when the raw IP works?
Almost always a DNS or SRV record problem. If your server does not use Minecraft's default port, an SRV record has to supply the right port, and a record left over from an older setup will send players to a port that refuses them.
Still stuck? Jump into our Discord at discord.gg/GuavaHost and the team will help you out.
- minecraft
- java
- netty
- connection
- troubleshooting
Host a Minecraft Java server From $3.99/mo, with instant setup and DDoS protection.
Still need help? Our team is online 24/7 to answer questions.