Skip to content

Notification trigger on provider degradation — breaker re-opening, or zero downloads while searches succeed #186

Description

@Svnow132

Summary

Bridge the existing circuit breakers and the existing notification channels: push one alert when a provider is repeatedly tripping its breaker, or when downloads flatline while searches keep succeeding.

What problem does this feature solve?

Sublarr already has circuit breakers and notification channels, but no bridge between them: a provider can fail permanently (expired auth, dead key, gate misconfiguration) and the only symptom is a quietly stagnant wanted queue. On our install, the primary provider was dead for 3 days before anyone noticed (#NN Bug 1) — the failure signature ("searches fine, downloads zero") was sitting in the stats the whole time, but nothing pushed it.

What do you propose?

New notification triggers, off by default, routed through the existing channels/templates:

  • circuit breaker for a provider opened ≥ N times within 24 h
  • zero successful downloads in X h while ≥ Y searches succeeded (the "searches fine, downloads dead" signature)
  • a provider auto-disabled, or all its pool keys exhausted/429-cooling

Rate-limited to one alert per condition per provider per day — the point is the first ping, not a stream. Pairs naturally with the health panel (FR: provider health status): the panel shows it, the hook pushes it.

Alternatives considered

  • External log-scraper alerting (Loki/grep cron) — needs extra infra and breaks whenever a log message changes wording; several relevant events only log at DEBUG.
  • Polling provider_stats via API — possible, but auth/gate state isn't exposed, and every user would be rebuilding the same watchdog Sublarr already has the data for.
  • FR 2 panel alone — visibility without push still requires someone to look; the 3-day outage in #NN happened precisely because nobody had a reason to look.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions