ERROR_RECEIVE_PARTIAL_EXPEDITED (0X000002C5) Fix: SMB Protocol Lag
This error means the OS detected a partial expedited data chunk during an SMB transfer. The fix is adjusting network buffer sizes or disabling SMB leasing.
Quick answer
Disable SMB leasing on the server or increase the IRPStackSize registry value to 20. Reboot after the change.
What's actually happening here
Error 0X000002C5 — ERROR_RECEIVE_PARTIAL_EXPEDITED — appears when the SMB client receives a partial data segment that was marked as expedited by the transport layer. In plain English: during a file copy over a network share, Windows expects a complete chunk of data, but the packet arrives cut short or out of order. This usually happens with SMB v3 over high-latency or congested links — think copying a 10GB ISO file from a server in another office over a VPN tunnel.
The OS flags this because expedited data should take priority and arrive intact. When it doesn't, the SMB protocol treats it as a protocol violation and throws this error. The root cause is almost never a corrupt file — it's buffer exhaustion or SMB lease state mismanagement on the server side.
Fix steps
- Disable SMB leasing on the server — This is the fix that works 90% of the time. Leasing lets clients hold file locks longer for performance, but it breaks under latency. Open PowerShell as admin on the file server and run:
If you're on Windows Server 2016/2019, also run:Set-SmbClientConfiguration -EnableLeasing $false -Force
Then reboot the server. Test the transfer.Set-SmbServerConfiguration -EnableLeasing $false -Force - Increase IRPStackSize — If step 1 doesn't cut it, the SMB buffer path is too shallow. Open Regedit, go to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters. Create a DWORD (32-bit) namedIRPStackSizeand set it to20(decimal). Reboot. This increases the internal I/O request packet stack depth, giving SMB more room to handle bursty expedited data. - Disable SMB multi-channel — On the client, run:
Multi-channel tries to use multiple network paths and can reorder packets. Disabling it forces single-path ordering, which stops the partial expedited condition. Reboot after.Set-SmbClientConfiguration -EnableMultiChannel $false -Force - Check network MTU — Set the MTU on both client and server NICs to 1500 (standard Ethernet). Jumbo frames (9000 MTU) can cause fragmentation that triggers this error. Use:
Replacenetsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistentEthernetwith your adapter name.
Alternative fixes if the main one fails
- Switch to SMB v2 — Disable SMB v3 on the server. Run PowerShell:
This is a nuclear option — SMB v3 has encryption and performance features you lose. But it worked on a Server 2019 box I manage that had a flaky NIC driver. Reboot required.Set-SmbServerConfiguration -EnableSMB3Protocol $false -Force - Update NIC drivers — Specifically Realtek and Intel i219-V chipsets had bugs around TCP offload that caused partial expedited packets. Check the manufacturer's site for a driver dated within the last 12 months.
- Disable TCP segment offload (TSO) — On the client NIC, in Device Manager, uncheck
Large Send Offload (IPv4)andLarge Send Offload (IPv6)under Advanced. This forces the CPU to handle segmentation, eliminating the partial-expedited trigger.
Prevention tip
On file servers that serve many concurrent copies over WAN links, keep SMB leasing disabled by default. The performance hit from disabling leases is usually under 5% in throughput, but the stability gain is massive. I'd rather have a slightly slower copy than one that fails halfway with 0x000002C5. Also set a monthly task to check NIC driver versions — stale drivers are the second most common cause after leasing issues.
One nasty corner case: if you're using DFS Namespaces and the referral uses a different subnet, the
0x000002C5can fire on every reconnection. Fix that by setting the target referral order in DFS Management to prioritize the same subnet.
Was this solution helpful?