navidrome/server/subsonic
Deluan 80e9921d45 fix(subsonic): return error 70 when scrobble contains invalid IDs
Implements OpenSubsonic API clarification from PR #202: the scrobble
endpoint now validates all media file IDs before processing and returns
error code 70 (data not found) if any ID is invalid. This ensures the
entire operation fails atomically - no scrobbles are submitted when any
ID in the batch is invalid, matching the OpenSubsonic specification.

Changes include updating MediaFileRepository.Exists() to accept variadic
IDs for efficient batch validation via a single COUNT query.

See: https://github.com/opensubsonic/open-subsonic-api/pull/202
Signed-off-by: Deluan <deluan@navidrome.org>
2026-02-04 18:08:02 -05:00
..
filter fix(subsonic): only use genre tag when searching by genre (#4361) 2025-07-19 21:52:29 -04:00
responses feat(subsonic): Add avgRating from subsonic spec (#4900) 2026-01-18 17:42:42 -05:00
album_lists.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
album_lists_test.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
api.go fix(subsonic): always enable getNowPlaying endpoint regardless of configuration 2025-12-11 15:44:21 -05:00
api_suite_test.go feat:(server): support reading lyrics from filesystem (#2897) 2025-04-30 08:10:19 -04:00
api_test.go fix(prometheus): report subsonic error code (#4282) 2025-06-30 11:54:02 -04:00
bookmarks.go feat(subsonic): implement indexBasedQueue extension (#4244) 2025-11-09 12:52:05 -05:00
browsing.go feat: add similar songs functionality in agents, and Instant Mix (song-based) to UI (#4919) 2026-01-25 16:16:43 -05:00
browsing_test.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
helpers.go fix(subsonic): fix support for LegacyClients 2026-01-25 18:06:48 -05:00
helpers_test.go fix(subsonic): fix support for LegacyClients 2026-01-25 18:06:48 -05:00
jukebox.go refactor: small improvements and clean up (#3423) 2024-10-22 22:54:31 -04:00
library_scanning.go feat(scanner): implement selective folder scanning and file system watcher improvements (#4674) 2025-11-14 22:15:43 -05:00
library_scanning_test.go feat(scanner): implement selective folder scanning and file system watcher improvements (#4674) 2025-11-14 22:15:43 -05:00
media_annotation.go fix(subsonic): return error 70 when scrobble contains invalid IDs 2026-02-04 18:08:02 -05:00
media_annotation_test.go fix(subsonic): return error 70 when scrobble contains invalid IDs 2026-02-04 18:08:02 -05:00
media_retrieval.go fix(subsonic): Sort songs by presence of lyrics for getLyrics (#4237) 2025-06-16 12:04:41 -04:00
media_retrieval_test.go feat(prometheus): add metrics to Subsonic API and Plugins (#4266) 2025-06-27 22:13:57 -04:00
middlewares.go feat: rename "reverse proxy authentication" to "external authentication" (#4418) 2025-12-02 12:01:48 -05:00
middlewares_test.go feat: rename "reverse proxy authentication" to "external authentication" (#4418) 2025-12-02 12:01:48 -05:00
opensubsonic.go feat(subsonic): implement indexBasedQueue extension (#4244) 2025-11-09 12:52:05 -05:00
opensubsonic_test.go feat(subsonic): implement indexBasedQueue extension (#4244) 2025-11-09 12:52:05 -05:00
playlists.go feat: new "Subsonic Minimal Clients" configuration option (#4850) 2026-01-16 05:55:21 -05:00
playlists_test.go feat: new "Subsonic Minimal Clients" configuration option (#4850) 2026-01-16 05:55:21 -05:00
radio.go Replace all utils.Param* with req.Params 2023-12-21 17:41:09 -05:00
searching.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
searching_test.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
sharing.go fix(subsonic): make Share's lastVisited optional 2025-01-09 16:10:53 -05:00
stream.go Add log.IsGreaterOrEqualTo, that take into consideration path-scoped log levels 2023-12-25 16:35:16 -05:00
system.go Some cleanup, adding missing context handling 2022-12-06 19:57:47 -05:00
users.go fix(subsonic): make getUser?username comparison case-insensitive 2025-12-19 17:56:40 -05:00
users_test.go fix(subsonic): add username parameter validation for GetUser endpoint 2025-12-10 18:30:26 -05:00