Raspberry Pi 4 NAS: SATA SSD starts throwing I/O errors and disconnecting
Hi everyone,
I'm troubleshooting a storage issue with my Raspberry Pi 4 NAS and would appreciate some input.
Hardware
Raspberry Pi 4B, 2 GB RAM
Raspberry Pi OS Lite 64-bit
1 TB 2.5" SATA SSD connected via USB 3.0 SATA adapter
Main adapter: Sabrent/JMicron, USB ID 152d:a578
Second USB-SATA adapter also tested
Software / services
Installed roughly in this order:
Raspberry Pi OS Lite 64-bit
OpenMediaVault 8
SMB shares
Plex Media Server
Tailscale
Wi-Fi hotspot using hostapd/systemd-networkd for offline Plex access
Docker
Docker Compose
Paperless-ngx
Paperless-ngx runs in Docker Compose.
Because the Pi only has 2 GB RAM, I configured Paperless with:
SQLite
Apache Tika disabled
German OCR only
Paperless data, media and consume folders stored on the external SSD
The whole setup worked normally for around 5–6 days.
The storage problems appeared during the night after I installed Paperless-ngx.
Symptoms
The SSD becomes unreliable when connected to the Pi.
Sometimes it is detected normally as:
/dev/sda /dev/sda1
At other times it disappears completely.
During disk activity, dmesg has shown errors such as:
critical medium error, dev sda Buffer I/O error device offline reset SuperSpeed USB device USB disconnect
While UAS was originally enabled, I also saw repeated messages such as:
uas_eh_abort_handler uas_eh_device_reset_handler
Sometimes the SSD mounts and works initially, then starts throwing errors under load and may eventually disappear from lsusb / lsblk.
When that happens, Plex reports its media as unavailable and Paperless returns HTTP 500 because its persistent data is stored on the SSD.
Power checks
vcgencmd get_throttled 0x0
I also tested the USB supply with an inline USB voltage/current meter.
Voltage was around:
4.99 V
during operation.
The lowest value I observed during boot was around:
4.82 V
I did not see any voltage drop corresponding with the storage errors.
I later removed the USB meter completely and reproduced the same errors without it.
UAS test
The Sabrent adapter identifies as:
152d:a578
I disabled UAS specifically for this adapter using:
usb-storage.quirks=152d:a578:u
in /boot/firmware/cmdline.txt.
After rebooting, dmesg confirmed that UAS was ignored and the adapter was using usb-storage instead.
The I/O errors, USB resets and disconnects still occurred.
USB adapters / ports tested
I tested:
Two different USB-SATA adapters
Both USB 3 ports
USB 2 ports
Cold boots with the SSD connected
Reconnecting the SSD/adapters
Booting with and without the SSD attached
Both SATA adapters have shown problems when used with the Pi.
Other basic USB devices, such as a USB mouse, are detected immediately and work normally.
SSD testing on another computer
I connected the same SSD through USB to a Windows laptop.
The SSD is consistently detected there.
CrystalDiskInfo reports:
Health: 100%
Reallocated sectors: 0
Uncorrectable sectors: 0
Read error rate: 0
Around 287 power-on hours
I then ran a full read/surface test using HDDScan.
Results:
Bad blocks: 0 >500 ms: 0 <500 ms: 0 <150 ms: 0 <50 ms: 0 <20 ms: 0
Almost the entire drive was read in the fastest response category.
The full read test completed without errors.
Read testing on the Pi
I also performed read-only tests such as:
sudo dd if=/dev/sda of=/dev/null bs=16M count=64 status=progress
During these tests, the Pi again produced errors including:
critical medium error I/O error reset SuperSpeed USB device
In some cases the device eventually disappeared completely.