0XC000071A

STATUS_PORT_ALREADY_HAS_COMPLETION_LIST (0XC000071A) Fix

This error occurs when a program tries to assign a completion list to an I/O completion port that already has one. It's common with custom apps or drivers racing on port creation.

You'll see STATUS_PORT_ALREADY_HAS_COMPLETION_LIST (0xC000071A) most often when a custom application or driver calls CreateIoCompletionPort on a port that's already got a completion list attached. I've seen it pop up in server apps that try to reuse the same port handle for multiple thread pools, or in legacy drivers that don't check if the port is already bound. The trigger is almost always a race condition — two threads or processes both think they're the first to set up the completion list on the same port object.

Root Cause

The I/O completion port kernel object keeps track of a single completion list per port. That list is the queue that holds completed I/O packets. Windows doesn't let you swap out or add a second list once one's active. The API CreateIoCompletionPort returns STATUS_PORT_ALREADY_HAS_COMPLETION_LIST if you pass in a port handle that's already been configured with a completion list.

The real fix is to stop the race. Either make sure only one thread ever initializes the port, or create a fresh port for each set of completions. Don't try to reuse the same port for different completion strategies — that's what causes this.

Step-by-Step Fix

  1. Identify the source. Open Event Viewer (press Win + R, type eventvwr.msc). Look under Windows Logs > Application and System for any events with source Application Error or 0xC000071A. Note the app or driver name.
  2. Check if the app or driver is running multiple instances. Open Task Manager (Ctrl + Shift + Esc) and look for duplicates of the failing process. If you see more than one, kill all of them, then restart just one instance.
  3. Update the software. Go to the vendor's website and download the latest version. Many developers fixed this by adding proper port allocation logic. For Windows drivers, check Windows Update for optional driver updates.
  4. If you wrote the code, fix the race. In your app, wrap the CreateIoCompletionPort call in a critical section or mutex. Example in C++:
    HANDLE hPort = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 1);
    if (hPort == NULL) {
        // Handle error
    }
    // Then use the same handle for all threads — never call CreateIoCompletionPort again on it.
    

    Or better: create a new port for each pool of threads. Don't share ports across unrelated completion lists.

  5. Restart the service or app. After the fix, stop and restart the app. If it's a driver, disable and re-enable the device in Device Manager, then reboot.

What to Check If It Still Fails

If you're still stuck after the steps above:

  • Check for third-party antivirus or sandbox software. Some security tools hook CreateIoCompletionPort and can mess up the port state. Temporarily disable them to test.
  • Run a system file check. Open Command Prompt as admin and run sfc /scannow. This fixes corrupt OS files that might affect kernel-level port handling.
  • Update the kernel-mode driver. If the error comes from a driver, use verifier.exe to enable Driver Verifier for that specific driver — it will catch improper port handling. Be careful: Driver Verifier can blue-screen your system if the driver is really broken.
  • Use Process Monitor. Download it from Microsoft Sysinternals. Filter on CreateIoCompletionPort and watch which process calls it twice on the same port handle. That's your culprit.

The bottom line: this error means something already claimed the completion list. You can't have two. Find what's racing, and fix the allocation logic.

Related Errors in Windows Errors
0X00000565 Windows Error 0x00000565: Too Many Secrets Stored 0XC00D2907 NS_E_ANALOG_VIDEO_PROTECTION_LEVEL_UNSUPPORTED (0XC00D2907) Fix 0X800401F6 CO_E_APPSINGLEUSE (0X800401F6) — App already running 0XC01E031F Fix 0xC01E031F Monitor Frequency Range Error Fast

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.