{"record":{"id":"94bb2717a271e9e9","repo":"Radarr/Radarr","slug":"empty-feed-cannot-check-if-feed-is-parsable","errorCode":null,"errorMessage":"Empty feed, cannot check if feed is parsable.","messagePattern":"Empty feed, cannot check if feed is parsable\\.","errorType":"exception","errorClass":"UnsupportedFeedException","httpStatus":null,"severity":"warning","filePath":"src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssSettingsDetector.cs","lineNumber":119,"sourceCode":"            {\n                _logger.Trace(ex, \"Feed wasn't parsable by Ezrss Parser\");\n                return null;\n            }\n        }\n\n        private TorrentRssIndexerParserSettings GetGenericTorrentRssParserSettings(IndexerResponse response, TorrentRssIndexerSettings indexerSettings)\n        {\n            var parser = new TorrentRssParser\n            {\n                UseEnclosureUrl = true,\n                UseEnclosureLength = true,\n                ParseSeedersInDescription = true\n            };\n\n            var item = parser.GetItems(response).FirstOrDefault();\n            if (item == null)\n            {\n                throw new UnsupportedFeedException(\"Empty feed, cannot check if feed is parsable.\");\n            }\n\n            var settings = new TorrentRssIndexerParserSettings()\n            {\n                UseEnclosureUrl = true,\n                UseEnclosureLength = true,\n                ParseSeedersInDescription = true\n            };\n\n            if (item.Element(\"enclosure\") == null)\n            {\n                parser.UseEnclosureUrl = settings.UseEnclosureUrl = false;\n            }\n\n            var releases = ParseResponse(parser, response);\n            ValidateReleases(releases, indexerSettings);\n\n            if (!releases.Any(v => v.Seeders.HasValue))","sourceCodeStart":101,"sourceCodeEnd":137,"githubUrl":"https://github.com/Radarr/Radarr/blob/ca451608dc60c6cec754aba8d96bfa30e9468ed5/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssSettingsDetector.cs#L101-L137","documentation":"TorrentRssSettingsDetector.GetGenericTorrentRssParserSettings throws an UnsupportedFeedException when the feed, parsed as a generic TorrentRssParser, yields zero <item> entries (FirstOrDefault returns null). Without at least one item the detector cannot inspect enclosure/size/seeders fields to decide the parser configuration, so generic detection fails.","triggerScenarios":"The feed URL returns valid RSS with an empty <channel> (no <item>), a valid feed for a different (empty) category, or a feed that the XML parser reduced to zero items due to namespace mismatch.","commonSituations":"The feed is genuinely empty right now (no recent uploads) but will populate later; the configured URL/filter returns no items; the feed is paginated and the first page is empty; a copy-paste error points at an unrelated RSS endpoint with no torrent items.","solutions":["Open the configured feed URL and confirm it actually contains <item> entries right now.","If the feed is temporarily empty, retry detection later when there are uploads.","Correct the feed URL so it returns items (not an empty channel or a non-torrent RSS feed).","Verify the URL does not require auth/cookies that the detection request omitted.","Use a Torznab/Newznab endpoint via Jackett instead of raw torrent RSS for more reliable parsing."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Before detection, confirm the feed is non-empty\nvar sample = XDocument.Parse(response.Content).Descendants(\"item\").FirstOrDefault();\nif (sample == null)\n    throw new UnsupportedFeedException(\"Feed has no items; cannot detect settings.\");","typeGuard":"null","tryCatchPattern":"try { var settings = detector.Detect(indexerSettings); }\ncatch (UnsupportedFeedException ex) when (ex.Message.Contains(\"Empty feed\"))\n{ logger.Warn(\"Feed empty now; retry detection later.\"); }","preventionTips":["Retry detection when the feed has active uploads","Point at a feed URL/category that returns items","Verify no auth is required that detection omits"],"tags":["torrent-rss","indexer","detection","empty-feed","csharp"],"backgroundTag":null,"analyzedSha":"ca451608dc60c6cec754aba8d96bfa30e9468ed5","analyzedAt":"2026-08-13T17:21:54.115Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}