github Listenarrs/Listenarr v1.3.18-canary
Canary 1.3.18

pre-release3 hours ago

The bug

With zero indexers configured/enabled, IndexerSearchWorkflow.SearchIndexersAsync logged a warning and then returned GenerateMockIndexerResults(query): five synthetic releases with fabricated titles, sizes, and URLs. Because this method also serves the automatic-search path, those fake releases flowed into real scoring and the grab decision, where one could be selected and handed to a download client.

This is not only reachable by a manual search click: AutomaticSearchService (a BackgroundService on a five-minute initial delay and recurring interval) also calls SearchAsync(isAutomaticSearch: true), so on an install with no indexers configured yet the fake releases enter scoring unattended, on a timer. The fabricated entries carry realistic qualities (MP3 64kbps through FLAC), sizes, and non-zero seeders; the only tell is the Mock Indexer source string, which nothing in the pipeline gates on.

The fix

Zero indexers now returns an empty result set with a clear warning ("No indexers configured or enabled; search returned no results"). Both GenerateMockIndexerResults overloads are deleted — a repo-wide search (backend, tests, fe/) found no other consumers, and no dev/debug flag gated them.

Tests

  • SearchIndexers_NoIndexersConfigured_ReturnsEmptyWithoutSyntheticResults

Full suite green: 1190 passed / 0 failed; dotnet format --verify-no-changes clean.

🤖 Generated with Claude Code


Automated Canary build

Don't miss a new Listenarr release

NewReleases is sending notifications on new releases.