| Previous | Next |
| STATUS_NOT_CAPABLE | STATUS_IMPLEMENTATION_LIMIT |
STATUS_REQUEST_OUT_OF_SEQUENCE
Reconstruct the protocol or object state machine and the order of preceding operations
STATUS_REQUEST_OUT_OF_SEQUENCE is an ordering failure. The individual request can be valid, but not at the point in the operation lifecycle where it was issued. This is especially important for asynchronous code because completion order, cancellation, reconnect, and multiple producer threads can reorder actions that look sequential in source code.
Windows driver interfaces frequently define explicit state transitions even when they do not return this exact status in every implementation. The mobile broadband guidance, for example, requires miniports to distinguish state changes caused by OID requests and to report asynchronous request progress through defined indications. Power and PnP paths similarly depend on ordered lifecycle transitions. The NTSTATUS message should therefore trigger a sequence reconstruction rather than a parameter-range check.
Log a per-object request sequence number, operation type, current state, expected predecessor, and the completion that advanced the state. Avoid relying only on timestamps from multiple CPUs; causal IDs are more reliable. Check double completion and late callbacks after teardown, because a stale completion can advance or mutate a new lifecycle generation. The fix is usually to serialize or reject transitions according to the state machine, not to sleep and resend the same request later.
What to inspect
- Record object generation, current state, request sequence number, and the last successful transition.
- Check late asynchronous completions and callbacks from a previous lifecycle generation.
- Express legal transitions in one state machine instead of scattering order checks across unrelated call sites.
References
- Microsoft: Mobile Broadband operational semantics
- Microsoft: PnP and power management scenarios
- Microsoft: Registering an IoCompletion routine
- Microsoft: Enhanced I/O Verification
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.