0XC000020A

STATUS_ADDRESS_ALREADY_EXISTS (0XC000020A) fix: port conflict

Windows Errors Intermediate 👁 0 views 📅 May 26, 2026

This error means a port or address is already in use. We'll walk through quick port checks, then kill the process or change the app's port.

What's happening here

You're staring at error STATUS_ADDRESS_ALREADY_EXISTS (0XC000020A) and something won't start — maybe a web server, a Docker container, or an app you rely on. I've seen this pop up in Windows 10 and 11, often when you install something new or after an update. The short version: another process already grabbed the port or IP address your app wants. It's not broken, it's just crowded.

I'll walk you through three stops. Start with the first — it takes 30 seconds. If that doesn't fix it, move to the next. You can stop anytime the error disappears.

Quick fix (30 seconds): Find and release the port

Open Command Prompt as Administrator. Don't skip the admin part — regular mode won't show every process. Run this:

netstat -aon | findstr :8080

Replace 8080 with whatever port your app uses. If you're not sure, just run netstat -aon and look for the port near the error message. You'll see output like this:

TCP    0.0.0.0:8080    0.0.0.0:0    LISTENING    12345

The number on the far right (12345) is the process ID (PID) that's hogging the port. Now kill it:

taskkill /PID 12345 /F

The /F forces it closed. Try starting your app again. If the error's gone, you're done.

Real-world trap: What if netstat shows nothing?

I've debugged this on a colleague's machine where netstat returned empty. Turned out the port was used by a Windows service running under a system account. Run netstat -aonb (adds the binary name) — you might see svchost.exe or a third-party service. Kill it the same way, but be careful: don't kill critical system processes (like lsass.exe or services.exe). If it's a service, you can stop it cleanly with net stop [service name].

Moderate fix (5 minutes): Change the app's port

If the port is needed by something you can't or shouldn't kill (like a database or a corporate VPN), the real fix is to tell your app to use a different port. This is especially common with web servers and Docker.

For IIS or any web server

Find your site bindings in Internet Information Services (IIS) Manager. Right-click your site → Edit Bindings → change the port to something else, like 8081. Then restart the site.

For Docker containers

You probably ran something like docker run -p 8080:80 nginx. Change the left side of the -pdocker run -p 8081:80 nginx. Or use Docker Compose: edit the ports section in your docker-compose.yml.

For Node.js / Python / custom apps

Look for a config file or environment variable that sets the port. For Express.js apps, it's usually process.env.PORT || 3000. Change that to 3001. For Flask, set app.run(port=5001). Restart the app.

Advanced fix (15+ minutes): Resolve deep conflicts

Sometimes this error hides in places you wouldn't expect. I've seen it with Windows Subsystem for Linux (WSL) and with Hyper-V reserving ports without telling anyone.

Check WSL

If you use WSL2, it might have grabbed the port for its own networking. Open PowerShell as Admin and run:

wsl --shutdown

Then restart WSL with wsl. Try your app again. If it works, you may need to configure WSL to use a different IP range or port mapping. Edit %USERPROFILE%/.wslconfig and add:

[wsl2]
localhostForwarding=true

But if that doesn't help, you can use netsh interface portproxy to map a different port to WSL — that's deeper than I'll go here, but search for "WSL port forwarding" if needed.

Check Hyper-V and Windows container reserved ports

Windows 10/11 with Hyper-V reserves a range of ports for its own use. Run this in PowerShell as Admin:

netsh int ipv4 show excludedportrange protocol=tcp

You might see your port in the list. If it is, you can't use it. Change your app's port to something outside that range (usually above 50000 is safe, but check). Or disable the Windows Container feature if you don't use it, then reboot — but I'd only do that if you're desperate.

Reset TCP/IP stack (nuclear option)

This is the last resort. It resets all network settings to defaults. Run these commands in order as Admin, then reboot:

netsh int ip reset
netsh winsock reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns

After reboot, try your app again. This cleared a stubborn case on a Windows Server 2019 box I worked on — the port was stuck in TIME_WAIT state and wouldn't release even after killing the process.

When none of this works

If you've tried all three and the error still appears, you might be dealing with a corrupted service or a driver issue. Check the Windows Event Viewer under Windows Logs → System for more clues. Look for entries near the time the error occurred. Sometimes a third-party firewall or antivirus can lock a port — try temporarily disabling it. I've also seen a bug in older versions of Docker Desktop (pre-4.0) that caused this — updating Docker fixed it.

One last thing: if you're using a VPN, disconnect and try again. Some VPNs bind to all addresses and block local ports. If that works, configure your VPN to exclude the port range your app needs.

Was this solution helpful?