| Previous | Next |
| ERROR_NO_SHUTDOWN_IN_PROGRESS | ERROR_SERIAL_NO_DEVICE |
ERROR_IO_DEVICE
The request could not be performed because of an I/O device error.
ERROR_IO_DEVICE is Win32 error 1117 (0x45D). It is a broad translation of a lower-level I/O failure. The code says that a device request did not complete successfully, but it does not identify the failing layer, medium, controller, cable, driver, remote path, or exact hardware status.
Where it can surface
- file reads, writes, flushes, metadata updates, or paging operations on a local disk
- USB, optical, removable, virtual, iSCSI, SAN, or Storage Spaces devices
- backup and database workloads that issue large or durable I/O requests
- device-specific
DeviceIoControloperations - network-backed storage when a remote error is mapped into a local Win32 result
The failing pathname is not enough. A mount point can lead to a different physical disk, virtual disk, storage pool, network redirector, or filter stack. Map the application object to its volume and underlying device before deciding which diagnostics are relevant.
Typical root-cause categories
- media defects, controller resets, transport timeouts, unstable cabling, or power loss
- a device being removed, surprise-removed, suspended, or reset during the request
- firmware or driver defects that return an unsuccessful status
- filesystem corruption or unreadable metadata encountered while processing the I/O
- virtualization or storage-array faults below the guest operating system
Do not equate 1117 with a confirmed bad disk. The same code can be produced by a transient USB disconnect, a virtual disk backend outage, a filter driver, or a failed enclosure path. Conversely, repeated 1117 results on the same LBA or device should not be dismissed as an application bug.
Diagnostic sequence
- capture the operation type, byte offset, length, file path, volume GUID, disk number, and device instance
- correlate the failure time with System log events from Disk, StorPort, Ntfs, volmgr, stornvme, USB, or vendor drivers
- check storage health, path redundancy, firmware, controller logs, and virtualization host events
- repeat only with a non-destructive read or vendor diagnostic when data integrity permits
- preserve dumps or ETW traces if the problem involves a reproducible driver or filter path
Application telemetry should retain the original Win32 code and, when available, the underlying NTSTATUS, SCSI sense data, protocol status, or device diagnostic record. Converting everything to “file unavailable” removes the evidence needed to distinguish a filesystem issue from a transport or hardware failure.
Recovery decisions
For a one-time removable-device interruption, reopening after the device is stable may succeed. For persistent storage errors, stop write-heavy retries, protect remaining readable data, and fail over to a healthy path or replica. Databases and backup tools should let their own consistency and recovery mechanisms decide whether an operation can resume.
Administrators should verify backups before running repairs that modify on-disk state. Developers should make retry limits explicit, apply backoff, and avoid retrying non-idempotent writes unless the completion state is known.
Related errors
ERROR_CRC is more specific about a data-integrity check. ERROR_DEVICE_NOT_CONNECTED points toward absence of the device. ERROR_DISK_OPERATION_FAILED and ERROR_DISK_RESET_FAILED describe older disk-controller failure categories. Error 1117 remains the general device-I/O result when a narrower mapping is unavailable.
Example
A backup service reads a virtual disk and receives 1117 at the same offset on every attempt. The guest System log shows StorPort retries, while the hypervisor reports a degraded storage path. Reinstalling the backup program would not address the fault; the useful response is to preserve the offset and device identity, repair the backend path, and then validate the affected data.
References
- Microsoft: System Error Codes (1000–1299)
- Microsoft: Troubleshooting data corruption and disk errors
- Microsoft: Disk Event ID 51 information
Looking for a different code? Search another status or error code.
