Skip to content

USE_CUTOFF selects the inverse of documented behavior on Radarr, Whisparr, and Readarr #30

Description

@egg82

USE_CUTOFF selects the inverse of what's documented on Radarr, Whisparr, and Readarr. README:292 describes it as "Select for items that do not meet their profile cutoff", but on these three the filter skips exactly the upgradable items and searches the ones already at cutoff. Sonarr and Lidarr are correct, which is what makes the other three unambiguous.

Radarr (RadarrUpdater.java:123) and Whisparr (WhisparrUpdater.java:123), identical:

if (useCutoff && (movieFile == null || movieFile.qualityCutoffNotMet())) {
    // ...skips
    logger.info("Skipping movie {} (\"{}\") because it meets the quality cutoff", ...);

The skip fires when qualityCutoffNotMet() is true, and the log line reports the opposite of the condition that fired — so the logs actively mislead anyone debugging it. The movieFile == null clause compounds it: with MISSING_STATUS=missing, :102 skips everything with a file and :123 skips everything left, so the selection is empty.

Compare Sonarr (SonarrUpdater.java:145-163), which computes cutoffMet and skips on that.

Readarr (ReadarrUpdater.java:158-165) is inverted by a stray negation instead — if (!b.qualityCutoffNotMet()).

Fix on Radarr/Whisparr: skip only when the movie has a file and its cutoff is met — useCutoff && movieFile != null && !movieFile.qualityCutoffNotMet() — which also removes the empty-set interaction.

Read from source; not run.


Found with Claude Code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions