Public Beta Test: Audio Without Compromise - Refining the Future of Volumio on Bookworm

Hey @Raw,

Thanks for your detailed report. You’ve provided a solid breakdown of the OTA from version 4.017 to 4.020. After reviewing both your setup and the Volumio backend source, the issue appears to stem from a mismatch between your manual mounting method and the supported automount logic used by Volumio.

You mentioned:

sudo mkdir -p /mnt/NVME
sudo mount -t auto /dev/nvme0n1p1 /mnt/NVME (nvme0n1p1 is my M2 SSD with Music)
...
LABEL=nvme /mnt/NVME ext4 defaults,nofail 0 2

And:

  • /mnt/NVME is symlinked to /var/lib/mpd/music
  • This setup worked fine in 4.017, but in 4.020 the log shows:
info: CoreCommandRouter::executeOnPlugin: mpd , updateDb
info: CoreCommandRouter::executeOnPlugin: mpd , getMyCollectionStats
error: MPD error: The expression evaluated to a falsy value:
  assert.ok(self.idling)

This error typically means MPD’s event loop is out of sync, possibly due to attempting a scan while the backend believes the database or files are still loading.

The deeper issue is likely this: manual fstab entries are not guaranteed to persist across OTA updates, and even when present, may not be evaluated early enough to populate the directory before Volumio initiates its scan.

Volumio provides an official way to mount internal storage automatically by using a supported disk label. As seen in the backend code:

var internalMemoryAllowedLabelsArray = ['issd', 'ihdd', 'Internal SSD', 'Internal HDD'];

If you label your SSD using one of those values (e.g. issd), Volumio will treat the device as internal storage and mount it automatically without needing /etc/fstab. This ensures proper integration into the startup and library scan flow.

To align with the supported method:

  1. Change your disk label:

    sudo e2label /dev/nvme0n1p1 issd
    
  2. Remove your /etc/fstab entry for this mount.

  3. Remove the manual symlink to /var/lib/mpd/music if it still exists.

Volumio should then detect the internal SSD, mount it under its managed location, and index it properly into the Music Library during startup.

If you still encounter the same assert.ok(self.idling) error after adopting the supported method, it may indicate a misconfiguration introduced in 4.020 affecting MPD idle state tracking. Please confirm and we can escalate accordingly.

Kind Regards,