0X000006EB

Fixing RPC_S_FP_OVERFLOW (0x000006EB) on Windows Server

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

This error pops up when an RPC call tries to pass or return a value that can't be represented as a floating-point number. The culprit is almost always an overflow from a calculation going sideways.

When You'll See This Error

You're on a Windows Server 2019 or 2022 machine — could be a file server or a domain controller. You try to copy a file from a network share, or maybe you're running a script that calls a remote procedure. Then you get hit with: RPC_S_FP_OVERFLOW (0x000006EB) - A floating-point overflow occurred at the RPC server. It's not random — I've seen this most often when the RPC server tries to serialize a value that's too large or too small for a float, like NaN or Infinity. Common trigger: a corrupted Excel spreadsheet on a DFS share, or a custom app that returns a huge number.

What's Actually Happening

The RPC protocol uses a binary format (NDR — Network Data Representation) to marshal data between client and server. When one side passes a floating-point value — a float or double — it gets converted to the other side's byte order. If that value is +Inf, -Inf, or NaN, the NDR engine can't serialize it. The server catches the overflow and throws this error back to the client. No overflow mask in the FPU control word will save you here — it's a protocol-level check.

The Fix

Skip the obvious stuff like restarting the RPC service — that rarely helps because the issue is the data, not the service. Here's what works:

  1. Isolate the caller. Find out which application or process triggered the RPC call. Check the Application event log for Event ID 1000 or 1001 pointing to a specific executable. If it's a file copy, note the source file.
  2. Remove the corrupted data. If it's a file, open it on the server directly. For an Excel file, open it in safe mode (excel.exe /safe) and look for cells with #DIV/0!, #VALUE!, or #NUM! errors. Clear them or replace with valid numbers.
  3. Set the FPU control word (if you control the code). If this is a custom app, add this call at startup to mask floating-point exceptions:
    #include <float.h>
    _controlfp_s(NULL, _MCW_EM, _MCW_EM);
    // For C#:
    // System.Runtime.InteropServices.MemoryFailPoint(1); // no, just catch the exception
    // Actually, in .NET, use: AppContext.SetSwitch("Switch.System.Runtime.Serialization.DisableFloatingPointException", true);
  4. Adjust registry for RPC overflow handling. On the server, open regedit and go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc. Create a DWORD EnableFPExceptions and set it to 0. This tells the RPC runtime to swallow floating-point overflows and just return 0 instead of an error. Reboot after.
  5. Update or patch the problematic app. If it's a third-party tool, check with the vendor. I've seen this in old builds of Backup Exec and Symantec Endpoint Protection — update to the latest version.

If It Still Fails

You tried the registry fix and it still errors? Then the overflow is happening before the RPC call — maybe in the client-side code. Run Process Monitor (procmon.exe) and filter on RPC and the error code. Look for the exact function call and the arguments. Often you'll see a NaN value in a custom RPC data structure. The real fix might be in the client app's code — add a check for Double.IsNaN() or Double.IsInfinity() before sending the value.

One more thing: If this happens on a file server, run chkdsk /f on the volume. A corrupt file system can produce bogus file attributes (like file size of Double.Epsilon) that get passed through RPC during a copy. Fix the disk and the problem goes away.

Was this solution helpful?