From 2c8e686b4d4ffd3fac0a57de8dd2324feee717cc Mon Sep 17 00:00:00 2001 From: Tomas Dvorak Date: Sat, 19 Sep 2026 00:31:14 +0200 Subject: [PATCH] fix(downloader): recognize qBittorrent v5 stoppedDL state (#2933) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit qBittorrent 4.4+/v5 renamed pausedDL to stoppedDL. The state map lacked it, so a paused download reported StatusUnknown, which the remote-download workflow treats as a critical failure — the task was canceled as soon as the user paused it to pick files. Authored By: TDvorak Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- pkg/downloader/qbittorrent/qbittorrent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/downloader/qbittorrent/qbittorrent.go b/pkg/downloader/qbittorrent/qbittorrent.go index 110cf2cd..c82c17f3 100644 --- a/pkg/downloader/qbittorrent/qbittorrent.go +++ b/pkg/downloader/qbittorrent/qbittorrent.go @@ -189,7 +189,7 @@ func (c *qbittorrentClient) Info(ctx context.Context, handle *downloader.TaskHan // Combining and converting all info state := downloader.StatusDownloading switch torrents[0].State { - case "downloading", "pausedDL", "allocating", "metaDL", "queuedDL", "stalledDL", "checkingDL", "forcedDL", "checkingResumeData", "moving", "forcedMetaDL": + case "downloading", "pausedDL", "stoppedDL", "allocating", "metaDL", "queuedDL", "stalledDL", "checkingDL", "forcedDL", "checkingResumeData", "moving", "forcedMetaDL": state = downloader.StatusDownloading case "uploading", "queuedUP", "stalledUP", "checkingUP", "forcedUP": state = downloader.StatusSeeding