What's wrong?
Offline cache snapshots track IDs at download time and never resyncs. If the source's contents change on the server afterwards, the cache silently goes stale.
Steps to reproduce
- Cache a playlist offline.
- On the server, add a track to that playlist (and/or remove one).
- Reopen the playlist in Psysonic.
What should happen?
Cache reflects current contents — new track downloaded, removed track's file deleted.
What actually happens?
- Added track: never downloaded. Button stays on "Remove offline" — no way to pull the new track without delete + re-download.
- Removed track: file orphaned on disk, dead ID kept in meta.trackIds.
Root cause: downloadAlbum stores trackIds = songs.map(s => s.id) once; isCached checks that snapshot, not live contents. No resync path exists. Same applies to albums and artist downloads.
Suggested fix: resyncOffline(albumId, currentSongs, serverId) diffing meta.trackIds vs current IDs — download missing, delete removed, update meta. Call on opening a cached item.
Psysonic version
1.46.0
Operating system
macOS
Install source
.dmg (macOS)
Subsonic-compatible server
Navidrome
Server version
No response
Logs
Screenshots / video
No response
Anything else
Let me know if this makes sense and I'll work on PR
What's wrong?
Offline cache snapshots track IDs at download time and never resyncs. If the source's contents change on the server afterwards, the cache silently goes stale.
Steps to reproduce
What should happen?
Cache reflects current contents — new track downloaded, removed track's file deleted.
What actually happens?
Root cause:
downloadAlbumstorestrackIds = songs.map(s => s.id)once;isCachedchecks that snapshot, not live contents. No resync path exists. Same applies to albums and artist downloads.Suggested fix:
resyncOffline(albumId, currentSongs, serverId)diffing meta.trackIds vs current IDs — download missing, delete removed, update meta. Call on opening a cached item.Psysonic version
1.46.0
Operating system
macOS
Install source
.dmg (macOS)
Subsonic-compatible server
Navidrome
Server version
No response
Logs
Screenshots / video
No response
Anything else
Let me know if this makes sense and I'll work on PR