| Previous | Next |
| STATUS_INVALID_READ_MODE | STATUS_FILE_FORCED_CLOSED |
STATUS_IO_TIMEOUT
STATUS_IO_TIMEOUT means that an I/O operation did not complete within the timeout set by the stack or protocol. It identifies elapsed time, not the root cause. A timeout can result from a busy or unavailable device, a stalled storage path, removable media state, a network transport delay, or a lower-level driver that failed to complete the request.
How to investigate the timeout
- Log the target device or remote endpoint, operation type, request size, timeout value, and correlation identifier.
- Check whether the same target returns
STATUS_DEVICE_NOT_READY, media errors, reset events, or transport disconnects before or after the timeout. - Compare the timeout with expected workload and queue depth; increasing it without understanding the wait can hide a stuck path.
- For retryable protocols, use bounded retries and preserve idempotency so that an uncertain write is not duplicated after reconnection.
When a retry is appropriate
Microsoft's storage-driver guidance includes STATUS_IO_TIMEOUT among conditions that may be resolved by restoring media or device readiness. That makes a carefully bounded retry reasonable for a transient state. Repeated timeouts, however, should be treated as a storage or transport incident and correlated with device, controller, network, and application logs.
See IoIsErrorUserInduced, Media-change handling guidance, and the NTSTATUS reference.
Looking for a different code? Search another status or error code.