-
Notifications
You must be signed in to change notification settings - Fork 21
Description
Please check existing knowledge before opening an issue
- I have checked the FAQ and documentation
- I have searched through existing issues and discussions.
Describe the Bug
I have a Sonos speaker set up to Scrobble to LastFM. It seems to scrobble no problem with services like Plex and Apple Music. However, when I play from HypeMachine, multi-scrobbler is unable to submit to Listenbrainz, getting a 400
error looking like the release name
field is empty. However, all other places I scrobble to such as Koito, Maloja accept the scrobble just fine. Last.fm scrobbles from Sonos perfectly fine too.
The logs below are for the song Moodified by the artist rRoxymore. The entry for this song on Last.fm is here.
Log specifically from the Failed Scrobble job for the song is below. The full debug log is in the log area further down in this issue.
rRoxymore - [Moodified](https://www.last.fm/music/rRoxymore/_/Moodified) --- @ 2025-07-10T13:50:18-04:00 (S) (20 minutes ago) Source:Lastfm - LastFm (Source) Retries: 0 Last Retried: Never Error: Error occurred while making Listenbrainz API scrobble request: Listenbrainz API Request Failed => (HTTP Status 400) | Code 400 | Error => field track_metadata.release_name is empty. => Listenbrainz API Request Failed => (HTTP Status 400) | Code 400 | Error => field track_metadata.release_name is empty. => Bad Request
Platform
Docker
Versions
Multi-scrobbler 0.9.7
Logs
[2025-07-10 14:00:27.514 -0400] WARN : [App] [Scrobblers] [Listenbrainz - unnamed-lz] Could not scrobble rRoxymore - Moodified @ 2025-07-10T13:50:18-04:00 (S) from Source 'Lastfm - LastFm (Source)' but error was not show stopping. Adding scrobble to Dead Letter Queue and will retry on next heartbeat.
Error: Could not scrobble rRoxymore - Moodified @ 2025-07-10T13:50:18-04:00 (S) from Source 'Lastfm - LastFm (Source)' but error was not show stopping. Adding scrobble to Dead Letter Queue and will retry on next heartbeat.
at ListenbrainzScrobbler.doProcessing (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:778:50)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async ListenbrainzScrobbler.startScrobbling (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:698:27)
caused by: Error: Error occurred while making Listenbrainz API scrobble request: Listenbrainz API Request Failed => (HTTP Status 400) | Code 400 | Error => field track_metadata.release_name is empty.
at ListenbrainzScrobbler.doScrobble (CWD/src/backend/scrobblers/ListenbrainzScrobbler.ts:95:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async ListenbrainzScrobbler.doProcessing (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:772:51)
at async ListenbrainzScrobbler.startScrobbling (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:698:27)
caused by: Error: Listenbrainz API Request Failed => (HTTP Status 400) | Code 400 | Error => field track_metadata.release_name is empty.
at ListenbrainzApiClient.callApi (CWD/src/backend/common/vendor/ListenbrainzApiClient.ts:208:23)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async ListenbrainzApiClient.submitListen (CWD/src/backend/common/vendor/ListenbrainzApiClient.ts:345:26)
at async ListenbrainzScrobbler.doScrobble (CWD/src/backend/scrobblers/ListenbrainzScrobbler.ts:85:13)
at async ListenbrainzScrobbler.doProcessing (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:772:51)
at async ListenbrainzScrobbler.startScrobbling (CWD/src/backend/scrobblers/AbstractScrobbleClient.ts:698:27)
caused by: Error: Bad Request
at callback (CWD/node_modules/superagent/src/node/index.js:901:17)
at <anonymous> (CWD/node_modules/superagent/src/node/index.js:1166:18)
at IncomingMessage.<anonymous> (CWD/node_modules/superagent/src/node/parsers/json.js:19:7)
at IncomingMessage.emit (node:events:530:35)
at endReadableNT (node:internal/streams/readable:1698:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
Additional Context
I think Multi-scrobbler needs to send some sort of field as default when a song is not in the Musicbrainz database. This song in particular when imported directly to LB via its own last.fm sync, does show the song in my scrobbles, but it's unlinked. Here is the JSON when I inspect that listen:
{ "inserted_at": 1752171509, "listened_at": 1752169818, "recording_msid": "f9f0d5ad-9162-4b0f-a903-49d465354486", "track_metadata": { "additional_info": { "lastfm_artist_mbid": "f974ba6b-1c97-4235-ad8f-912ed211f960", "recording_msid": "f9f0d5ad-9162-4b0f-a903-49d465354486", "submission_client": "ListenBrainz lastfm importer v2" }, "artist_name": "rRoxymore", "track_name": "Moodified" }, "user_name": "{redacted}" }