Skip to content

fix: wait for SABnzbd post-processing before completing a download - #421

Merged
kikootwo merged 4 commits into
mainfrom
reland/306-sab-postprocessing
Oct 20, 2026
Merged

kikootwo merged 4 commits into
mainfrom
reland/306-sab-postprocessing

Conversation

@kikootwo

@kikootwo kikootwo commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Linked issue

Re-lands #306 by @connor2k, who wrote the original fix and is credited as co-author on these commits. #306 gets closed once this merges.

What changed

When a SABnzbd download reached 100%, RMAB treated the queue item as completed. SABnzbd only reports the final storage path once it has moved the job to history for post-processing, so the monitor failed the request for good with "Download path not available from download client".

  • A queue item at 100% now maps to extracting (shown as processing). Monitoring continues through history's post-processing statuses (Verifying, Repairing, Extracting, Moving, Running) until a Completed slot gives the storage path.
  • Admin Retry treats processing as alive, so a Retry during that window resumes monitoring instead of sending the NZB to SABnzbd a second time.
  • Docs: documentation/phase3/sabnzbd.md.

Checks

  • A lifecycle test steps from the queue at 100% (processing) through history Extracting and Moving (neither completed nor failed) to Completed with the storage path. The changed tests fail on main.
  • A Retry test: a SABnzbd download that is still processing resumes monitoring and isn't re-added. It fails without the fix.
  • Tested together with fix: accept qBittorrent 5.2 torrent-add responses #420 (the qBittorrent re-land) on main: the full unit suite in the Node 24 test container passes (297 files, 3,998 passed, 5 skipped), and so do the image build, the smoke test and an end-to-end import spec (3/3).

Risk and rollback

  • A job that stays at 100% in the queue is now polled like any stalled download, instead of failing straight away with the wrong message.
  • Rollback: revert this PR.

Release note

SABnzbd downloads no longer fail with "Download path not available" when they reach 100% before post-processing has finished.

🤖 Generated with Claude Code

kikootwo and others added 4 commits October 20, 2026 14:51
SABnzbd keeps a finished download in its queue at 100% while
post-processing (verify, repair, unpack, move) still runs. RMAB mapped
that queue state to completed, but the final storage path only exists
once the item reaches history, so the monitor failed the request with
"Download path not available from download client".

A queue item at 100% now maps to extracting, so monitoring continues
until history reports the item completed with its storage path.

Re-lands #306 by @connor2k.

Co-authored-by: connor2k <connormiddleton@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ssing

A 100% SABnzbd queue item now reports processing instead of completed,
and admin Retry did not count processing as alive, so it re-added the
NZB and SABnzbd got a duplicate. Retry now resumes monitoring for any
processing download.

Also corrects the post-processing wording (100% in the queue is the
tail of file assembly; post-processing is reported in history) and adds
the history post-processing step to the lifecycle test: Extracting and
Moving keep polling, only Completed completes.

Co-authored-by: connor2k <connormiddleton@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kikootwo
kikootwo merged commit 12af34a into main Oct 20, 2026
2 checks passed
@kikootwo
kikootwo deleted the reland/306-sab-postprocessing branch October 20, 2026 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant