Windows Error 1159: “The message can be used only with synchronous operations”
Why This Error Happens
Error 1159 (ERROR_IO_INCOMPLETE-adjacent messaging fault) occurs when an application attempts to use an overlapped (asynchronous) I/O handle or socket in a context that strictly requires synchronous operation flags. This typically happens with Winsock-based applications or named pipe communications where a handle was created with the FILE_FLAG_OVERLAPPED attribute, but a subsequent API call (like WSARecvMsg or certain DeviceIoControl calls) expects a blocking, synchronous handle instead. It can also surface due to corrupted network drivers, outdated Winsock catalog entries, or third-party firewall/VPN software injecting improper hooks into the network stack.
Step-by-Step Resolution Guide
- Reset the Winsock Catalog
Open Command Prompt as Administrator and run:
netsh winsock reset
Restart the PC afterward to apply the reset cleanly.
- Reset TCP/IP Stack
In the same elevated Command Prompt, run:
netsh int ip reset resetlog.txt
This rebuilds the IP stack, which often resolves handle-flag mismatches causing Error 1159.
-
Update or Roll Back Network Drivers
Go to Device Manager > Network Adapters, right-click your active adapter, select Properties > Driver > Update Driver. If the issue began after a recent update, choose Roll Back Driver instead. -
Check for Conflicting Third-Party Software
Temporarily disable third-party antivirus/firewall or VPN clients (e.g., Norton, McAfee, Cisco AnyConnect) via Settings > Apps > Installed Apps, since these often inject LSP (Layered Service Provider) hooks that force asynchronous handles into synchronous calls. -
Repair System Files
Run the following in an elevated Command Prompt to fix underlying corruption:
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
Alternative or Verification Steps
- Verify the fix: Reproduce the original action (e.g., the network operation, backup job, or application feature that triggered Error 1159) and confirm the message no longer appears in Event Viewer under Windows Logs > Application.
- Alternative fix: If the error persists, use
netsh winsock show catalogto inspect for orphaned LSP entries and manually remove any third-party provider path causing the conflict.