Quick answer for advanced users
Disable write-cache buffer flushing on the disk in Device Manager, or increase the IoTimeout registry value to 60 seconds. But read on—this can cause data loss if you lose power.
What's actually happening here
Storage Cache Flush Timeout (Event ID 129 in Windows) pops up when your hard drive or SSD takes longer than the system expects to flush its internal cache. The default timeout is 30 seconds. If your drive can't finish flushing within that time—maybe because of a slow SATA controller, a failing disk, or a driver bug—Windows logs this error and often freezes the whole system or the disk in question.
I've seen this most often on older laptops with spinning disks (5400 RPM) and on some early NVMe SSDs. The scenario: you're copying a big file, system hangs, then after a minute it recovers. Check Event Viewer under 'System', and there's Event ID 129 from 'disk' source.
Fix steps – try this first
These steps target the most common cause: the disk's own write-cache buffer flushing.
- Open Device Manager. Press Win + X and select 'Device Manager'.
- Find your disk. Expand 'Disk drives', right-click your problematic drive (usually the system drive), choose 'Properties'.
- Go to the 'Policies' tab. You'll see two options: 'Enable write caching on the device' and 'Turn off Windows write-cache buffer flushing on the device'.
- Check the second box. 'Turn off Windows write-cache buffer flushing on the device'. Click OK. You'll get a warning about data loss—it's real, but for most desktop users with a UPS, it's fine.
- Reboot. That's it. The flush timeout error should stop.
Why this works: Windows normally sends a 'flush' command to the disk's cache every few seconds. If the disk is slow (or the driver misbehaves), that flush can stall. By turning off the flushing, Windows let's the disk manage its own cache—which is what most drives do anyway. The risk: if power cuts during a write, data in the cache might be lost. So don't do this on a laptop that's often on battery.
Alternative fixes if the main one fails
If the first fix doesn't help, or you get the same error on multiple disks, try these:
1. Increase the IoTimeout registry value
This tells Windows to wait longer before giving up on a flush. It's safer than disabling flushing entirely.
Open Registry Editor (Win + R, type regedit)
Go to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System
If 'IoTimeout' doesn't exist, create a DWORD (32-bit) with that name.
Set its value to 60 (decimal). That's 60 seconds.
Reboot.
2. Update your storage driver
The default Microsoft driver works for most, but sometimes the chipset driver from your motherboard vendor (Intel, AMD, or the OEM like Dell) handles SATA/NVMe better. Check the manufacturer's support site, not just Windows Update.
3. Check the disk health
Run chkdsk /f on the drive. If it finds bad sectors or file system errors, the disk might be dying. Also use CrystalDiskInfo (free) to check S.M.A.R.T. status. If reallocated sectors are rising, replace the drive.
Prevention tip
For SSD users: don't disable write-cache flushing on a drive that doesn't have power-loss protection (most consumer SSDs). You'll corrupt data if the power drops. Instead, increase the timeout to 60 seconds and update the firmware. For spinning disks: if you use the 'Turn off flushing' fix, plug your PC into a UPS. It's cheap insurance.
And if you're on a laptop that travels, skip both fixes. The risk of data loss isn't worth it. Replace the drive instead—it's likely old and slow anyway.