Catch importBlocked in arrs_failed_stalled_recovery.sh
Recovery script only matched importFailed/importPending/error/stalled, so releases matched to the wrong media by grab-history ID (Sonarr/Radarr's importBlocked state) sat forever, invisible to automated cleanup.
This commit is contained in:
@@ -13,9 +13,16 @@
|
|||||||
# OPERATIONAL MODEL
|
# OPERATIONAL MODEL
|
||||||
# ==============================================================================================
|
# ==============================================================================================
|
||||||
#
|
#
|
||||||
# Four problem types detected from the arr queue API:
|
# Five problem types detected from the arr queue API:
|
||||||
# importFailed — downloaded but arr couldn't import the file
|
# importFailed — downloaded but arr couldn't import the file
|
||||||
# importPending — downloaded, stuck waiting to import (will not self-resolve)
|
# importPending — downloaded, stuck waiting to import (will not self-resolve)
|
||||||
|
# importBlocked — downloaded, but arr matched the release to the wrong media
|
||||||
|
# by grab-history ID instead of by title and refuses to import
|
||||||
|
# (permanent block, never self-resolves — same handling as
|
||||||
|
# importFailed since most real-world cases are junk/duplicate
|
||||||
|
# releases; the rare case where the file is actually good but
|
||||||
|
# mis-parsed will just get re-searched instead of manually
|
||||||
|
# imported, an acceptable tradeoff for hands-free operation)
|
||||||
# error status — serious failure not covered by the above two states
|
# error status — serious failure not covered by the above two states
|
||||||
# stalled — download stuck with no connections or no progress
|
# stalled — download stuck with no connections or no progress
|
||||||
#
|
#
|
||||||
@@ -332,6 +339,7 @@ process_arr() {
|
|||||||
(
|
(
|
||||||
.trackedDownloadState == "importFailed" or
|
.trackedDownloadState == "importFailed" or
|
||||||
.trackedDownloadState == "importPending" or
|
.trackedDownloadState == "importPending" or
|
||||||
|
.trackedDownloadState == "importBlocked" or
|
||||||
.trackedDownloadStatus == "error" or
|
.trackedDownloadStatus == "error" or
|
||||||
(.status == "warning" and (
|
(.status == "warning" and (
|
||||||
(.errorMessage // "" | ascii_downcase | contains("stalled")) or
|
(.errorMessage // "" | ascii_downcase | contains("stalled")) or
|
||||||
@@ -368,6 +376,7 @@ process_arr() {
|
|||||||
case "$tracked_state" in
|
case "$tracked_state" in
|
||||||
importFailed) problem_type="import failed" ;;
|
importFailed) problem_type="import failed" ;;
|
||||||
importPending) problem_type="import pending/stuck" ;;
|
importPending) problem_type="import pending/stuck" ;;
|
||||||
|
importBlocked) problem_type="import blocked (matched by ID)" ;;
|
||||||
*)
|
*)
|
||||||
[[ "$tracked_status" == "error" ]] && \
|
[[ "$tracked_status" == "error" ]] && \
|
||||||
problem_type="error" || problem_type="stalled"
|
problem_type="error" || problem_type="stalled"
|
||||||
|
|||||||
Reference in New Issue
Block a user