fix: skip newReleases request to prevent deemix crash on unavailable tracks#26
Conversation
…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
|
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? |
|
Just adding a comment here that it looks like this is actually needed on the plugin to go along with the fix in deemix. |
|
It does not, this issue needs to be addressed better in Deezer. |
|
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 |
What's the problem?
When the Lidarr deemix indexer is tested or used,
GetRecentRequests()calls/api/newReleaseson the deemix instance. If Deezer's new releases feed contains unavailable (geoblocked?) albums, deemix throws an unhandledGWAPIError: Track unavailable on Deezerand crashes.The crash loop looks like this:
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 throughGetSearchRequests()which is unaffected.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.