[READ-ONLY] Mirror of https://github.com/FoxxMD/multi-scrobbler. Scrobble plays from multiple sources to multiple clients docs.multi-scrobbler.app
deezer docker jellyfin koito lastfm listenbrainz maloja mopidy mpris music music-assistant plex scrobble self-hosted spotify subsonic tautulli youtube-music
0

Configure Feed

Select the types of activity you want to include in your feed.

fix(maloja): Fix logging objects

FoxxMD (Jan 27, 2026, 5:06 PM UTC) fa06d650 1ce27a25

+3 -3
+2 -2
src/backend/common/vendor/maloja/MalojaApiClient.ts
··· 261 261 262 262 return [scrobbleResponse, responseBody, warnStr] 263 263 } catch (e) { 264 - this.logger.error(`Scrobble Error (${sType})`, { playInfo: buildTrackString(playObj), payload: scrobbleData }); 264 + this.logger.error({ playInfo: buildTrackString(playObj), payload: scrobbleData }, `Scrobble Error (${sType})`); 265 265 const responseError = getMalojaResponseError(e); 266 266 if (responseError !== undefined) { 267 267 if (responseError.status < 500 && e instanceof UpstreamError) { 268 268 e.showStopper = false; 269 269 } 270 270 if (responseError.response?.text !== undefined) { 271 - this.logger.error('Raw Response:', { text: responseError.response?.text }); 271 + this.logger.error({ text: responseError.response?.text }, 'Raw Response'); 272 272 } 273 273 } 274 274 throw e;
+1 -1
src/backend/scrobblers/MalojaScrobbler.ts
··· 122 122 await this.notifier.notify({ title: `Client - ${capitalize(this.type)} - ${this.name} - Scrobble Error`, message: `Failed to scrobble => ${buildTrackString(playObj)} | Error: ${e.message}`, priority: 'error' }); 123 123 throw e; 124 124 } finally { 125 - this.logger.debug('Raw Payload:', scrobbleData); 125 + this.logger.debug(scrobbleData, 'Raw Payload'); 126 126 } 127 127 } 128 128 }