Brazil's biggest MU Online portal — since 2003
Tutorial Intermediate Infrastructure

How to Fix the 'Address Already in Use' (Port in Use) Error on Your MU Online Server

Learn how to identify which process is holding the ConnectServer or GameServer port, safely terminate that process, and prevent the 'Address already in use' error from blocking your MU Online server's startup again.

GA Gabriel · Updated on Feb 23, 2026 · ⏱ 13 min read
Quick answer

The "Address already in use" error (or, in some builds, "bind failed," "port already in use") appears when the ConnectServer, JoinServer, or GameServer tries to open (bind) a TCP port that's already occupied by another process — whether a previous instance of the emulator itself that didn't close pr

The "Address already in use" error (or, in some builds, "bind failed," "port already in use") appears when the ConnectServer, JoinServer, or GameServer tries to open (bind) a TCP port that's already occupied by another process — whether a previous instance of the emulator itself that didn't close properly, or some other program coincidentally using the same port. Unlike a configuration error, this is an operating system state error, and the fix involves identifying and freeing the process holding the port before trying to start the server again. This tutorial shows how to diagnose it, safely terminate the process, and prevent it from happening again.

Why this error happens

Every process that opens a network port (bind) reserves that port exclusively for itself while it's running. If a previous session's GameServer.exe crashed, was force-closed via Task Manager, or the computer restarted without a clean shutdown, it's possible the old process is still "alive" in the background (or that the operating system hasn't fully released the port yet, in the TCP TIME_WAIT state), preventing the new instance from using the same port.

Symptoms and where they appear

Where the error appearsTypical messageAffected process
GameServer console on startup"bind failed" / "Address already in use"GameServer.exe
ConnectServer console on startup"Could not bind socket on port 44405"ConnectServer.exe
MySQL error log"Port 3306 already in use"mysqld.exe
Generic Windows error"Only one usage of each socket address is normally permitted"Any TCP service

Step 1 — Identify which process is using the port

On Windows, use netstat combined with findstr to find the PID (process identifier) occupying the port in question:

netstat -ano | findstr :44405
netstat -ano | findstr :55901

The last column of the result is the PID. Note it down for the next step.

Step 2 — Find the process name from the PID

With the PID in hand, identify which program it belongs to before terminating anything blindly:

Get-Process -Id <PID>

This avoids the classic mistake of terminating a system process or another program that coincidentally happens to be using that port.

Step 3 — Safely terminate the old process

If the identified process really is an old instance of the emulator itself (e.g., a stuck GameServer.exe), terminate it:

Stop-Process -Id <PID> -Force

Always confirm the process name first (Step 2) before using -Force, especially on servers shared with other services.

Step 4 — Wait out TCP's TIME_WAIT, if applicable

If netstat shows the port in the TIME_WAIT state (not LISTENING) with no process associated with it, the operating system is still in the standard TCP protocol wait period after the previous connection closed (usually between 30 seconds and 4 minutes, depending on the Windows configuration). In that case, there's no process to kill — just wait it out, or restart the network service.

netstat -ano | findstr TIME_WAIT

Step 5 — Configure socket reuse in the emulator (SO_REUSEADDR)

Newer emulators (some IGCN and MuEMU builds) let you enable immediate address/port reuse in the server configuration, avoiding the TIME_WAIT problem during frequent restarts in development and testing:

[Network]
ReuseAddress = 1

Not every emulator exposes this option — check the documentation for the specific build you use.

Step 6 — Separate test and production ports

A common mistake in teams with more than one admin is running a second emulator instance (a test/staging environment) using the exact same ports as production on the same machine. Set up a dedicated port range for testing:

EnvironmentConnectServerGameServer
Production4440555901
Test/Staging4441555911

Step 7 — Adopt a clean server shutdown

Whenever you stop the server for maintenance, use the emulator's own shutdown command (many have a console command like shutdown or /quit) instead of closing the console window with X or killing the process via Task Manager. A clean shutdown closes the sockets properly and releases the port immediately, avoiding the problem on the next startup.

Step 8 — Run as a Windows service for greater stability

For production servers, consider running the ConnectServer and GameServer as Windows services (using a tool like NSSM — Non-Sucking Service Manager) instead of executables opened manually in console windows. Services have a more predictable lifecycle and reduce the chance of "ghost" processes getting stuck after power outages or unexpected restarts.

Common errors and fixes

SymptomLikely causeFix
"Address already in use" when starting the GameServerA previous instance is still runningIdentify the PID with netstat and terminate the process
Port shows TIME_WAIT with no process attachedStandard TCP protocol wait periodWait the standard time or enable socket reuse
Error returns every time the server restartsShutdown always done forciblyUse the emulator's clean shutdown command
Two environments (test and production) conflictSame port used in both instancesSeparate the ports by environment
MySQL won't start with a port errorAnother MySQL service already running on 3306Stop the duplicate service or change one of their ports
Error only after a power outageProcesses not shut down properlyMigrate to running as a Windows service (NSSM)

Resolution checklist

  • PID occupying the port identified via netstat.
  • Process name confirmed before terminating it.
  • Old process terminated, or TIME_WAIT waited out.
  • Socket reuse enabled in the configuration, if available.
  • Test and production ports separated.
  • Server shutdown always done via the clean shutdown command.
  • Critical services (GameServer/ConnectServer) migrated to run as a Windows service, if in production.

After eliminating port conflicts, also review the firewall rules tied to each opened port, since these two problems tend to show up together during server migrations — see the MU Online server setup tutorial for a complete view of the recommended infrastructure.

Frequently asked questions

Why does this error appear out of nowhere, if the server started fine yesterday?

Usually because a previous instance of the GameServer or ConnectServer wasn't shut down properly (crash, power outage, forced window close), leaving a 'ghost' process still holding the port in memory, even though it isn't responding to anything.

Can I just change the server's port instead of killing the old process?

You can, and it's sometimes the fastest fix in production, but that only works around the symptom. If the ghost process keeps running, it will keep consuming memory and can cause inconsistent database behavior (duplicate connections). It's always better to identify and terminate the process, not just switch ports.

Can TCP's TIME_WAIT state cause this error even with no process running at all?

Yes. After a TCP connection closes, the operating system keeps the port in the TIME_WAIT state for a while (typically 30 to 240 seconds) before fully releasing it. If you try to restart the server immediately after a shutdown, you may see this error even with no active process — the fix is to wait it out or configure socket reuse (SO_REUSEADDR) in the emulator.

How do I avoid this happening every time I restart the server?

Always use a clean shutdown of the service (the emulator's own shutdown command, or stopping the Windows service if it's running as one) instead of closing the console window or force-killing the process via Task Manager. A clean shutdown releases the port immediately.

Can this error be caused by two different servers trying to use the same port?

Yes, it's common when an admin runs a second emulator instance (a test environment) using the same port configuration as production. Always use different ports for test and production instances.

GA
Guides & builds editor

Gabriel covers gameplay, class builds, PvP and progression. He tests every strategy on a live server before publishing.

Keep reading

Related articles