Follow-ups surfaced by the audit behind #2156, deliberately left out of that PR.
RSS scheduler hang (worth its own fix): when an RSS search overlaps an indexer whose previous RSS task is still pending, Submit's RSS dedup skips that indexer without invoking a callback (internal/services/jackett/scheduler.go ~574-582) while searchIndexersWithScheduler already did completionWG.Add(len(indexers)) (internal/services/jackett/service.go ~395), so OnJobDone blocks on the WaitGroup forever: a silent no-result automation run plus a leaked goroutine. Possibly relevant to past "automation fell off" reports.
Frontend gaps: the backend's partial flag on the search response (internal/services/crossseed/models.go) is dropped by CrossSeedTorrentSearchResponse in web/src/types/crossseed.ts, so deadline/degraded results render with no partial indicator; and a search run's errorMessage is never rendered on the Cross-Seed page, so a failed run shows as an unexplained red X (the per-item detail is only visible after expanding the row).
jackett.Recent inverse quirk: it always invokes its callback with a nil error, so even total indexer failure reports success with empty results instead of surfacing an error to the RSS automation run.
Follow-ups surfaced by the audit behind #2156, deliberately left out of that PR.
RSS scheduler hang (worth its own fix): when an RSS search overlaps an indexer whose previous RSS task is still pending,
Submit's RSS dedup skips that indexer without invoking a callback (internal/services/jackett/scheduler.go~574-582) whilesearchIndexersWithScheduleralready didcompletionWG.Add(len(indexers))(internal/services/jackett/service.go~395), soOnJobDoneblocks on the WaitGroup forever: a silent no-result automation run plus a leaked goroutine. Possibly relevant to past "automation fell off" reports.Frontend gaps: the backend's
partialflag on the search response (internal/services/crossseed/models.go) is dropped byCrossSeedTorrentSearchResponseinweb/src/types/crossseed.ts, so deadline/degraded results render with no partial indicator; and a search run'serrorMessageis never rendered on the Cross-Seed page, so a failed run shows as an unexplained red X (the per-item detail is only visible after expanding the row).jackett.Recentinverse quirk: it always invokes its callback with a nil error, so even total indexer failure reports success with empty results instead of surfacing an error to the RSS automation run.