Fix "**** FAILED TO BIND TO PORT!" on a Minecraft server
Why a Minecraft server says FAILED TO BIND TO PORT (java.net.BindException: Address already in use), and how to fix server-port, server-ip, plugin ports and leftover processes.
The console shows:
[Server thread/WARN]: **** FAILED TO BIND TO PORT!
[Server thread/WARN]: The exception was: java.net.BindException: Address already in use
[Server thread/WARN]: Perhaps a server is already running on that port?Sometimes the exception is Cannot assign requested address instead. Either way, the server couldn't open its network port, so nobody can join.
Why it happens #
- Address already in use: something else already has that port: an old copy of the server that didn't fully stop, a second server, or a plugin set to the same port.
- Cannot assign requested address:
server-ipinserver.propertiesis set to an IP the machine doesn't have.
1. Make sure no old copy is running #
On ESN, press Stop in the Console and wait until it says offline. If it hangs, use Kill. Then start again. On your own PC, close any other Minecraft server window; to see what uses the port:
# Windows
netstat -ano | findstr :25565
# macOS / Linux
lsof -i :25565
2. Check server-ip and server-port #
Open server.properties in Files:
server-ip=
server-port=25571server-ipshould be empty. Don't put your public IP or domain there.server-portmust be the port the panel gave your server, shown at the top of the Console page and on the Network page (25571above is only an example). See server IP and port.
3. Give plugins their own ports #
Some plugins and features open extra ports. If one is set to your main port (or two share one), you get the same bind error, sometimes from the plugin instead of the server.
| Plugin / feature | Where the port is set | Usual default |
|---|---|---|
| Dynmap | plugins/dynmap/configuration.txt → webserver-port | 8123 |
| BlueMap | plugins/BlueMap/webserver.conf → port | 8100 |
| Votifier / NuVotifier | plugins/Votifier/config.yml → port | 8192 |
| RCON | server.properties → rcon.port | 25575 |
| Query | server.properties → query.port | 25565 |
A plugin's web or vote port must be a port your server actually has: on ESN, use another port listed on your server's Network page. If you don't need the feature, turn it off (for example enable-rcon=false, enable-query=false).
bedrock.port in plugins/Geyser-Spigot/config.yml). In older Geyser versions, and with transport: raknet, it only uses UDP, so it can share your Java port number. Newer Geyser versions also use TCP on that port for Bedrock's new connection method, and a second UDP port (webrtc-port) when transport is both, so those must not clash with your Java port or with each other. enable-query=true also uses UDP on query.port. Details: Geyser + Floodgate setup.4. Start and check #
Start the server and wait for Done (…)! For help, type "help". If the bind error is gone but players still can't connect, see troubleshooting.
FAQ #
Can I change my server's port to 25565?
Not on a shared host: each server gets its own port from the panel, and server-port must match it. Players add :port after the IP, or use a domain with an SRV record.
It worked yesterday and today it says failed to bind.
Usually an old copy didn't stop in time. Kill the server, wait a few seconds, and start it again.
The error mentions a plugin, not the server.
That plugin is trying to open a port that's taken. Change it in that plugin's config to an unused port from your Network page, or turn the feature off.
Still stuck? Use the live chat on the panel or ask in the ESN Systems Discord. Last updated November 3, 2026.