- Device: Vero V
- OS: OSMC May 2026 (VERSION_ID=“2026.05-1”, VERSION_CODENAME=“bullseye”)
- Kernel: 4.9.269-93-osmc #1 SMP PREEMPT Fri May 1 19:08:41 UTC 2026 aarch64
- eMMC: Name A3A551, Manufacturer ID 0x0000d6, OEM ID 0x0103, manufactured 02/2022, serial 0x262110d0
- eMMC health registers: PRE_EOL=0x01 (Normal), life_time=0x01 0x00 (<10% worn)
- Purchase info: Order #44056 (September 20, 2023) — failing unit; Order #72229 (April 20, 2025) — healthy unit
Summary
I have experienced three separate eMMC-related failures on a Vero V unit over 8 days, causing Kodi’s video library database to become corrupted or unreadable. The failures produce SQLITE_IOERR_SHORT_READ errors at the application layer but generate no kernel-level block device errors: journalctl -k shows no mmcblk I/O errors during or after any of the three events. The eMMC’s own health registers report the device as normal. This combination makes the failures invisible to standard monitoring.
(I actually have two Vero V devices so used the healthy one as a point of comparison.)
Incident timeline
| Date | Kodi.log error | Effect | Recovery |
|---|---|---|---|
| 2026-05-25 | SQLITE_IOERR_SHORT_READ on MyVideos131.db | DB unreadable (SQLITE_NOTADB) | Manual restore from backup |
| 2026-05-29 | SQLITE_IOERR_SHORT_READ on MyVideos131.db | DB unreadable again | Manual restore from backup |
| 2026-06-02 | SQLITE_IOERR_SHORT_READ on PRAGMA cache_size=4096 | WAL file zeroed; library empty in UI | Automated WAL repair |
Three events in 8 days.
Technical detail
Observed errors in ~/.kodi/temp/kodi.log
Every database connection attempt fails from the moment the corruption occurs:
2026-06-02 21:22:56.269 T:18947 error <general>: SQL: [MyVideos131.db] SQLite error SQLITE_IOERR_SHORT_READ (disk I/O error)
Query: PRAGMA cache_size=4096
(disk I/O error)
2026-06-02 21:22:56.270 T:18947 error <general>: Connect failed with 'SQL: [MyVideos131.db] SQLite error SQLITE_IOERR_SHORT_READ (disk I/O error)
Query: PRAGMA cache_size=4096
(disk I/O error)'
This repeats continuously as Kodi retries, making the library appear empty to the user.
No corresponding kernel errors
Despite the above, journalctl -k contains no mmcblk block errors, no blk_update_request failures, and no EXT4 I/O errors during any of the three events. The failure is occurring at the filesystem or device driver layer below what the kernel reports to userspace, but above what SQLite normally expects to encounter.
SQLite WAL zeroing (third event)
On the 2026-06-02 event I was able to observe the failure mode more closely. The SQLite WAL file (MyVideos131.db-wal) was present on disk but had been truncated to 0 bytes. The main database file (MyVideos131.db, 14 MB) appeared structurally intact — PRAGMA quick_check returned ok via the Python sqlite3 module and the CLI. However, Kodi’s own SQLite could not open the database at all: every connection attempt failed before executing any query.
The WAL file being zeroed rather than simply missing suggests the eMMC accepted a write that opened/truncated the file but then failed to commit the subsequent data write — leaving a 0-byte file that causes SQLite’s WAL header read to return short.
eMMC identity and health registers — both units compared
I have a second Vero V unit (Order #72229, April 2025) that is running identically and has not experienced any failures. Comparing the two eMMC chips from /sys/bus/mmc/devices/emmc:0001/:
| Field | Unit 1 — failing (Order #44056) | Unit 2 — healthy (Order #72229) |
|---|---|---|
| name | A3A551 | A3A551 |
| manfid | 0x0000d6 | 0x0000d6 |
| oemid | 0x0103 | 0x0103 |
| date | 02/2022 | 01/2022 |
| fwrev | 0x1200000000000000 | 0x1200000000000000 |
| hwrev | 0x0 | 0x0 |
| serial | 0x262110d0 | 0x2d6eb6e0 |
| pre_eol_info | 0x01 (Normal) | 0x01 (Normal) |
| life_time (type A) | 0x01 (0–10% worn) | 0x01 (0–10% worn) |
| life_time (type B) | 0x00 | 0x00 |
The two chips are identical in part number, firmware revision, and reported health — the only differences are serial number and manufacture date. Notably, the failing unit (purchased September 2023) has an eMMC manufactured one month later than the healthy unit (purchased April 2025), suggesting the healthy unit shipped with older stock. This rules out a firmware revision difference between units and makes a chip-level defect or early-life failure the more likely explanation than a software or configuration issue.
Kernel boot messages for eMMC controller (failing unit)
The failing unit negotiated HS400 mode at boot:
meson-mmc: mmc driver version: 3.02, 2017-05-15: New Emmc Host Controller
meson-mmc: emmc:use ds type4
meson-mmc: emmc: support driver strength type 4
meson-mmc: emmc: try set sd/emmc to HS400 mode
meson-mmc: get temperature failed
meson-mmc: scan time distance: 111120166 ns
meson-mmc: ds_sht:16, window:23, intf3:0x410008, clock:0x10120002
emmc: new HS400 MMC card at address 0001
emmc: clock 199999997, 8-bit-bus-width
mmcblk0: emmc:0001 A3A551 28.9 GiB
Note: get temperature failed appears on both units at every boot and is therefore normal for the Vero V platform — it is not specific to the failing unit.
Current workaround
Claude wrote an automated monitoring and repair script that runs every 15 minutes on this unit. It greps kodi.log for SQLITE_IOERR_SHORT_READ; on detection it stops Kodi, uses the SQLite Online Backup API (sqlite3 .backup) to produce a clean WAL-free copy of the database (which succeeds even when Kodi’s SQLite cannot open the file), replaces the original, removes any stale WAL/SHM files, and restarts Kodi. This limits the user-visible outage to at most 15 minutes per event. I also run nightly backups of the database to a separate NAS for the case where the main DB becomes fully unreadable.
This workaround is sustainable short-term but is not a solution — the failures are likely to increase in frequency.
Questions
-
Is this a known issue with the Vero V eMMC? The A3A551 chip (serial 0x262110d0, manufactured 02/2022) has identical firmware and health register values to the healthy unit (serial 0x2d6eb6e0, manufactured 01/2022), ruling out a firmware difference. I am seeing application-level I/O errors consistent with partial write failures on a chip that reports <10% wear. Is this a known early-life failure mode for this part, or something you have seen on other units?
-
Is there a kernel or firmware update that addresses eMMC write reliability? The current kernel is 4.9.269-93-osmc from May 2026. The meson-mmc driver version is 3.02 (dated 2017-05-15). I am not aware of any available updates that might address this.
-
What are the replacement options? The eMMC is soldered to the board and cannot be replaced independently. If this unit needs to be replaced, what is the process?
FWIW: The report above was sourced by Claude, it delved into all the different Kodi/Vero/Debian/etc logs, did the debugging, and came up with the eMMC failure scenario. The report was edited and reviewed by me personally.