0XC000023F

STATUS_PORT_UNREACHABLE (0XC000023F) fix that actually works

Server & Cloud Intermediate 👁 0 views 📅 May 26, 2026

Shows up when a remote service you're connecting to isn't listening on that port. Firewall, service crash, or wrong IP are the usual suspects.

You're trying to connect to a remote server — maybe an SMB share, SQL database, or a custom app — and you get hit with STATUS_PORT_UNREACHABLE (0XC000023F). The exact message says "No service is operating at the destination port of the transport on the remote system." This isn't some cryptic network gremlin. It's brutally specific: whatever service you're asking for, it's not answering on that port.

I saw this last month with a client whose QuickBooks file server suddenly stopped responding. Their accounting team was dead in the water. The root cause? A Windows update had silently restarted the server, and the QuickBooks database service hadn't come back up. The port was open in the firewall, but nothing was listening on it.

What causes STATUS_PORT_UNREACHABLE?

Think of it like calling a phone number that rings but nobody picks up. The network layer can reach the server (no ICMP errors, no routing issues), but when it tries to connect to that specific TCP or UDP port, the OS says "nothing here." Common triggers:

  • The target service crashed or never started after a reboot
  • Firewall rules changed and now block the port (but still allow ping)
  • You're using the wrong IP or port number — happens more than you'd think
  • The service runs on a different port than default (like SQL Server on 1433 vs 1434)
  • Third-party antivirus or security software hijacked the port

The error code itself 0XC000023F is an NTSTATUS value. Windows uses this internally when a Winsock connect call fails with WSAECONNREFUSED (10061). Not a network path issue — a port issue.

The fix: Step by step

Skip the fancy tools. Start with the basics and work up.

  1. Verify the service is running
    On the remote server, open Services.msc and find the service connected to that port. If it's stopped, start it. If it crashes immediately, check the Event Viewer (Applications and Services Logs) for clues. I've seen services silently fail after an update because of a missing dependency.
  2. Confirm the port with netstat
    Run this on the remote server as admin:
    netstat -ano | findstr :
    Replace with the actual port number. If nothing shows, the service isn't listening. If it shows LISTENING, note the PID and check Task Manager to see which process owns it.
  3. Test connectivity with telnet
    From the client machine:
    telnet  
    If the screen goes blank (cursor blinks), the port is reachable. If it says "Could not open connection to the host", the error is real. Don't have telnet installed? Use PowerShell:
    Test-NetConnection -ComputerName  -Port 
    This tells you TcpTestSucceeded: True/False.
  4. Check Windows Firewall (and third-party firewalls)
    On the server, run wf.msc to open Windows Firewall with Advanced Security. Look for inbound rules that allow for TCP or UDP. If the rule exists but still fails, check the "Scope" tab — might be restricted to specific IPs. Also check if any security software (McAfee, Symantec, Bitdefender) has its own firewall module. Those can override Windows Firewall entirely.
  5. Verify the application configuration
    Some apps let you set a specific port. SQL Server, for instance, might be configured to listen on dynamic ports. Connect to SQL Server Configuration Manager, check SQL Server Network Configuration > Protocols for SQLEXPRESS > TCP/IP > IP Addresses. Make sure it's set to a static port and enabled.
  6. Reboot the remote server
    Sounds lazy, but it clears orphaned socket handles and forces services to restart cleanly. Had a client where a custom ERP service left a zombie process holding the port — reboot fixed it instantly.

What if it still fails?

If you've done all the above and the error persists, check these:

  • Double-check the port number and IP address. I once spent an hour chasing a phantom error because someone typed 192.168.1.10 instead of 192.168.1.11. Obvious, but it happens.
  • Is the service bound to all interfaces? Use netstat -ano -p tcp and look for 0.0.0.0: vs 127.0.0.1:. If it's only listening on localhost, external connections won't work. Fix this in the service config.
  • Check for port conflicts. Two services can't listen on the same port. Use netstat -ano -p tcp | findstr : to see if the PID changes between tests. If it does, something else grabbed the port first.
  • Wireshark or tcpdump — capture traffic on client and server. Filter for tcp.port == . You'll see the SYN packet leaving the client, arriving at the server, and then the server sending an RST (reset). That's the OS refusing the connection because no app claims the port. If you see SYN-ACK instead, the connection worked — your error is elsewhere.

One more thing: if you're dealing with RPC endpoints (like DCOM or some management tools), the port can be dynamic. That's a whole different beast. For 0XC000023F with a specific static port, this guide covers 95% of cases.

This error is always the same story — something's not listening where it should be. Find that something, and you're done.

Was this solution helpful?