| Previous | Next |
| ERROR_CANT_ENABLE_DENY_ONLY | ERROR_FLOAT_MULTIPLE_TRAPS |
ERROR_FLOAT_MULTIPLE_FAULTS
What this result means
ERROR_FLOAT_MULTIPLE_FAULTS is a Windows system result. More than one floating-point exception condition became pending or was detected together. The code is primarily useful during exception dispatch, debugging, or compatibility processing; it is not a precise diagnosis of which arithmetic operation was wrong.
Likely causes
- floating-point exception masks were changed and several pending conditions accumulated
- corrupted processor context or stack state produced inconsistent exception information
- legacy or generated code mishandled floating-point status flags
- instrumentation resumed execution without clearing or handling the original fault
Where this code is usually encountered
- Several floating-point fault conditions are present in one saved execution context.
- A handler resumes without clearing status, causing later arithmetic to accumulate faults.
- JIT, native, and library code disagree about x87 or SIMD control state.
Useful evidence
- exception record and first-chance event sequence
- x87 status/control words and MXCSR
- faulting instruction, operands, and module symbols
- state before and after callbacks, fibers, or context switches
Troubleshooting steps
- Capture the first floating-point exception; the aggregate code may hide the original operation.
- Decode x87 and MXCSR flags to identify invalid, divide-by-zero, overflow, underflow, or precision conditions.
- Check every handler that modifies exception masks or resumes execution.
- Use deterministic test inputs and compare scalar, SIMD, debug, and optimized builds.
Guidance for developers
Set floating-point policy at clear boundaries and restore prior state after third-party callbacks. Validate numeric domains and avoid continuing from a faulting instruction unless the handler explicitly repairs operands and status.
Guidance for administrators
This is an application or runtime defect, not a reason to change global processor settings. Preserve a dump and update the failing component.
How to interpret it correctly
The plural status reports multiple recorded fault conditions; it should not be treated as a single generic arithmetic overflow.
Example failure pattern
A numerical plugin may leave invalid-operation and overflow flags set while exceptions are masked. Later code changes the mask, and the saved context reports multiple faults at once. Capturing control state at plugin boundaries identifies the component that contaminated the thread’s floating-point environment.
Retry and recovery policy
Do not retry with the same operands and status flags. Reset state only at an owned boundary after recording it, validate the input, and restart the calculation from a defined checkpoint.
References
Looking for a different code? Search another status or error code.
