Two fixes to the payloads Minstrel sends Lidarr. Both were the same kind of bug: a shape that only a fake server ever accepted.
#5234, album add (670b30c9). Lidarr validates artist as a nested resource, so every album or track-kind add was refused with "'Artist' must not be empty". Approved album requests sat in the reconciler failing every 5 minutes (about 40 on the deploy). The add now mirrors Lidarr's own UI: look the album up by MBID, then POST that resource back. A new artist monitors only the requested album, with no catalogue search and no future releases. An existing artist is left untouched.
#5239, artist add (bf6364b7). The all/future monitor choice was sent at the top level, where ArtistResource has no field, so Lidarr dropped it and never applied it. It now goes in addOptions.monitor, and monitorNewItems is set explicitly.
CI: run 8520 (670b30c9) and run 8524 (bf6364b7) passed every verifying lane.
Two fixes to the payloads Minstrel sends Lidarr. Both were the same kind of bug: a shape that only a fake server ever accepted.
- **#5234, album add (`670b30c9`).** Lidarr validates `artist` as a nested resource, so every album or track-kind add was refused with "'Artist' must not be empty". Approved album requests sat in the reconciler failing every 5 minutes (about 40 on the deploy). The add now mirrors Lidarr's own UI: look the album up by MBID, then POST that resource back. A new artist monitors only the requested album, with no catalogue search and no future releases. An existing artist is left untouched.
- **#5239, artist add (`bf6364b7`).** The `all`/`future` monitor choice was sent at the top level, where ArtistResource has no field, so Lidarr dropped it and never applied it. It now goes in `addOptions.monitor`, and `monitorNewItems` is set explicitly.
CI: run 8520 (670b30c9) and run 8524 (bf6364b7) passed every verifying lane.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Lidarr's POST /api/v1/album validates `artist` as a nested resource
(AlbumController: RuleFor(s => s.Artist).NotNull()), so the flat payload
we sent was refused with "'Artist' must not be empty" every time. The
album add has never worked against a real Lidarr; approved album and
track requests sat in the reconciler retrying every 5 minutes.
AddAlbum now does what Lidarr's own add-album UI does (getNewAlbum /
getNewArtist): look the album up by MBID (album/lookup?term=lidarr:<mbid>),
then POST that resource back with monitored + searchForNewAlbum. When
Lidarr doesn't have the artist yet, the nested artist gets the request's
quality/metadata profile and root folder, monitors this album only
(monitor "none" + albumsToMonitor, which AlbumMonitoredService prefers)
and no future releases. An artist Lidarr already has is left as it is.
An MBID Lidarr's metadata doesn't know is ErrNotFound with no POST.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ArtistResource has no top-level `monitor`. Lidarr reads the choice from
AddOptions (AddArtistOptions, a MonitoringOptions), so the "all"/"future"
we sent there was dropped on deserialisation. AddOptions.Monitor stayed
Unknown, and AlbumMonitoredService.SetAlbumMonitoredStatus returns early
on Unknown. The request's monitoring was never applied.
Send monitor and monitored inside addOptions with searchForMissingAlbums,
the shape Lidarr's getNewArtist.js posts, and set monitorNewItems "all"
explicitly: both choices mean new releases are watched.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Two fixes to the payloads Minstrel sends Lidarr. Both were the same kind of bug: a shape that only a fake server ever accepted.
670b30c9). Lidarr validatesartistas a nested resource, so every album or track-kind add was refused with "'Artist' must not be empty". Approved album requests sat in the reconciler failing every 5 minutes (about 40 on the deploy). The add now mirrors Lidarr's own UI: look the album up by MBID, then POST that resource back. A new artist monitors only the requested album, with no catalogue search and no future releases. An existing artist is left untouched.bf6364b7). Theall/futuremonitor choice was sent at the top level, where ArtistResource has no field, so Lidarr dropped it and never applied it. It now goes inaddOptions.monitor, andmonitorNewItemsis set explicitly.CI: run 8520 (
670b30c9) and run 8524 (bf6364b7) passed every verifying lane.🤖 Generated with Claude Code