Skip to content

fix: skip newReleases request to prevent deemix crash on unavailable tracks#26

Open
dierigoletto wants to merge 1 commit into
ta264:masterfrom
dierigoletto:fix/newreleases-crash-unavailable-track
Open

fix: skip newReleases request to prevent deemix crash on unavailable tracks#26
dierigoletto wants to merge 1 commit into
ta264:masterfrom
dierigoletto:fix/newreleases-crash-unavailable-track

Conversation

@dierigoletto
Copy link
Copy Markdown

@dierigoletto dierigoletto commented Mar 22, 2026

What's the problem?

When the Lidarr deemix indexer is tested or used, GetRecentRequests() calls /api/newReleases on the deemix instance. If Deezer's new releases feed contains unavailable (geoblocked?) albums, deemix throws an unhandled GWAPIError: Track unavailable on Deezer and crashes.

The crash loop looks like this:

[error] unhandledRejection: Track unavailable on Deezer
GWAPIError: Track unavailable on Deezer
    at async getAlbumDetails (.../albumSearch.js:43:20)
    at async Promise.all (index 35)
    at async handler (.../newReleases.js:32:20)
[services.d] Starting Deemix   ← crash → restart → crash again

This means the Lidarr indexer test always fails, and deemix keeps restarting in a loop as long as Lidarr retries.

See also the related issues: #18, #21.

What's the fix?

GetRecentRequests() now returns an empty chain instead of calling /api/newReleases. This endpoint is only used for RSS-style "recent releases" discovery, which Lidarr doesn't rely on for its core search and download functionality, those go through GetSearchRequests() which is unaffected.

public virtual IndexerPageableRequestChain GetRecentRequests()
{
    // /api/newReleases crashes deemix when the feed contains geo-blocked
    // albums (GWAPIError: Track unavailable on Deezer). Returning an empty
    // chain avoids the crash without affecting search or download functionality.
    return new IndexerPageableRequestChain();
}

How was this tested?

Tested with a deemix Docker container (ghcr.io/bambanah/deemix:latest) and Lidarr with this plugin installed. Before the fix, clicking "Test" in the Lidarr indexer settings crashed deemix every time. After deploying the fix, deemix stayed up and albums could be searched and downloaded successfully through the indexer.

Related: There is a corresponding PR on the deemix side that fixes the root cause, unavailable albums are now caught and skipped instead of crashing the process: bambanah/deemix#287. Both fixes together make the integration fully robust.

…ble tracks

The /api/newReleases endpoint in deemix crashes the deemix process when
any album in the new releases feed is unavailable on Deezer (geo-blocked
or removed). This causes deemix to restart and makes the Lidarr indexer
test fail with a connection error.

GetRecentRequests() now returns an empty chain. This is safe because
Lidarr discovers releases via album search (GetSearchRequests), not via
the recent releases feed. The newReleases endpoint was only hit during
the indexer connectivity test, not during normal operation.

Fixes ta264#18, relates to ta264#21
@mynameisbogdan
Copy link
Copy Markdown
Collaborator

Hello @dierigoletto,

I noticed you pushed the right fix to the deemix webui already.

I wanted to take a jab at this as someone already brought the issue on discord. Disabling this for RSS syncs would've been okay, but it's being used for tests too to validate that the indexer is working properly.

At this point, do you think it's still needed to be addressed in the plugin as well?

@PearsonFlyer
Copy link
Copy Markdown

Just adding a comment here that it looks like this is actually needed on the plugin to go along with the fix in deemix.

@mynameisbogdan
Copy link
Copy Markdown
Collaborator

It does not, this issue needs to be addressed better in Deezer.

@RoiArthurB
Copy link
Copy Markdown

Hi @dierigoletto how can I try your fix on my server ? I can't figure how to change the installed plugin nor compile the plugin at all... 😅

@Le-NooNz
Copy link
Copy Markdown

Hi @dierigoletto how can I try your fix on my server ? I can't figure how to change the installed plugin nor compile the plugin at all... 😅

Hi , for what it's worth, i just did, the fix being already in deemix and now also in the plugin doesn't change anything

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants