| Previous | Next |
| ERROR_NO_MORE_MATCHES | ERROR_SERVER_SID_MISMATCH |
ERROR_RANGE_LIST_CONFLICT
What this result means
ERROR_RANGE_LIST_CONFLICT is a Windows system result. Range lists are used to track resources such as addresses, ports, memory, or device allocations. The requested interval violates the list policy, usually because it intersects an already reserved interval or duplicates ownership.
Likely causes
- the new start/end values overlap an existing entry
- inclusive and exclusive boundary conventions were mixed
- integer overflow wrapped the computed end of the range
- concurrent allocation checked and inserted without one atomic synchronization boundary
How to diagnose it
Log the requested start, length, computed end, range type, owner, and conflicting entry. Use checked arithmetic and include boundary semantics. Capture the lock or transaction used around lookup and insertion.
Correct handling
Do not force the insertion. Choose a nonconflicting interval, release stale ownership, or serialize allocation correctly. Treat exact duplicates according to the API contract rather than assuming they are harmless.
Where this code is usually encountered
- A driver or resource manager inserts a range overlapping an existing incompatible range.
- Removal or split logic leaves stale intervals in an internal range list.
- Concurrent updates occur without the lock required by the range-list contract.
Evidence worth collecting
- the new start/end range and conflicting existing range
- range attributes and owner identifiers
- the add, delete, merge, and split operation sequence
- locking, IRQL, and concurrent caller stacks
Practical diagnostic sequence
- Log ranges in one consistent inclusive/exclusive convention to avoid off-by-one confusion.
- Validate that the conflict is not an intentional shared range allowed by attributes.
- Replay the operation sequence in a checked diagnostic build with invariant validation after each mutation.
- Audit teardown for entries that survive after their device, mapping, or transaction owner is gone.
Guidance for developers
Use overflow-safe arithmetic when computing end addresses. Serialize mutations, make ownership explicit, and reject malformed or reversed ranges before touching the list.
Guidance for administrators
This is usually a component defect, not a setting to tune. Update the responsible driver and collect a kernel dump when the conflict affects device start or memory mapping.
How to interpret it correctly
A resource shortage means no suitable range exists; a conflict means the requested range intersects an already represented incompatible interval.
Example failure pattern
Suppose a driver reserves [0x1000,0x1fff] and later attempts to add [0x1800,0x27ff]. Logging only lengths hides the overlap; logging normalized endpoints, owner, flags, and the mutation sequence immediately exposes it. Also verify arithmetic does not wrap when start plus length is converted to an end address.
Retry and recovery policy
A retry with the same interval is unsafe and pointless. Recalculate or release the conflicting ownership under the proper lock, then perform a new validated insertion.
Suggested telemetry
For ERROR_RANGE_LIST_CONFLICT, record the operation name, component version, process and thread identity, the original numeric result, the immediately preceding state transition, and a correlation identifier. Keep the ERROR_RANGE_LIST_CONFLICT event separate from later fallback failures so its first actionable cause remains searchable across machines.
References
Looking for a different code? Search another status or error code.
