Radarr/Radarr · warning · UnsupportedFeedException

Empty feed, cannot check if feed is parsable.

Error message

Empty feed, cannot check if feed is parsable.

What it means

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.

Source

Thrown at src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssSettingsDetector.cs:119

            {
                _logger.Trace(ex, "Feed wasn't parsable by Ezrss Parser");
                return null;
            }
        }

        private TorrentRssIndexerParserSettings GetGenericTorrentRssParserSettings(IndexerResponse response, TorrentRssIndexerSettings indexerSettings)
        {
            var parser = new TorrentRssParser
            {
                UseEnclosureUrl = true,
                UseEnclosureLength = true,
                ParseSeedersInDescription = true
            };

            var item = parser.GetItems(response).FirstOrDefault();
            if (item == null)
            {
                throw new UnsupportedFeedException("Empty feed, cannot check if feed is parsable.");
            }

            var settings = new TorrentRssIndexerParserSettings()
            {
                UseEnclosureUrl = true,
                UseEnclosureLength = true,
                ParseSeedersInDescription = true
            };

            if (item.Element("enclosure") == null)
            {
                parser.UseEnclosureUrl = settings.UseEnclosureUrl = false;
            }

            var releases = ParseResponse(parser, response);
            ValidateReleases(releases, indexerSettings);

            if (!releases.Any(v => v.Seeders.HasValue))

View on GitHub (pinned to ca451608dc)

Solutions

  1. Open the configured feed URL and confirm it actually contains <item> entries right now.
  2. If the feed is temporarily empty, retry detection later when there are uploads.
  3. Correct the feed URL so it returns items (not an empty channel or a non-torrent RSS feed).
  4. Verify the URL does not require auth/cookies that the detection request omitted.
  5. Use a Torznab/Newznab endpoint via Jackett instead of raw torrent RSS for more reliable parsing.
Defensive patterns

Strategy: validation

Validate before calling

// Before detection, confirm the feed is non-empty
var sample = XDocument.Parse(response.Content).Descendants("item").FirstOrDefault();
if (sample == null)
    throw new UnsupportedFeedException("Feed has no items; cannot detect settings.");

Type guard

null

Try / catch

try { var settings = detector.Detect(indexerSettings); }
catch (UnsupportedFeedException ex) when (ex.Message.Contains("Empty feed"))
{ logger.Warn("Feed empty now; retry detection later."); }

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of Radarr/Radarr@ca451608dc (2026-08-13). Data as JSON: /api/errors/94bb2717a271e9e9. Report an issue: GitHub.