From 3569037191ebb5efa0e38a680731dc60b960e542 Mon Sep 17 00:00:00 2001 From: dierigoletto <120458121+dierigoletto@users.noreply.github.com> Date: Sun, 22 Mar 2026 13:21:29 +0100 Subject: [PATCH] fix: disable newReleases endpoint to prevent deemix crash on unavailable 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 #18, relates to #21 --- .../Indexers/Deemix/DeemixRequestGenerator.cs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/Lidarr.Plugin.Deemix/Indexers/Deemix/DeemixRequestGenerator.cs b/src/Lidarr.Plugin.Deemix/Indexers/Deemix/DeemixRequestGenerator.cs index 5fa3d16..96f54d4 100644 --- a/src/Lidarr.Plugin.Deemix/Indexers/Deemix/DeemixRequestGenerator.cs +++ b/src/Lidarr.Plugin.Deemix/Indexers/Deemix/DeemixRequestGenerator.cs @@ -14,16 +14,15 @@ public class DeemixRequestGenerator : IIndexerRequestGenerator public virtual IndexerPageableRequestChain GetRecentRequests() { - var pageableRequests = new IndexerPageableRequestChain(); - - var url = $"{Settings.BaseUrl.TrimEnd('/')}/api/newReleases"; - - pageableRequests.Add(new[] - { - new IndexerRequest(url, HttpAccept.Json) - }); - - return pageableRequests; + // The /api/newReleases endpoint in deemix crashes the deemix process + // when any album in the feed is unavailable on Deezer (GWAPIError: + // "Track unavailable on Deezer"). This unhandled Promise rejection + // kills the deemix Node process entirely, causing it to restart. + // + // Since Lidarr discovers releases via album search rather than the + // recent releases feed, returning an empty chain here has no impact + // on normal operation and prevents the crash during indexer testing. + return new IndexerPageableRequestChain(); } public IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria)