Skip to content

Conversation

@coreyeaston
Copy link
Contributor

No description provided.

coreyeaston and others added 2 commits February 11, 2026 16:43
test_connection for qBittorrent and SABnzbd accessed legacy config fields
(app_config.qbittorrent/sabnzbd) which are None when using the multi-client
download_clients system, causing "'NoneType' object has no attribute 'password'"
crashes. Updated both to use _find_existing_client() matching the pattern already
used by NZBGet, Transmission, and Deluge.

Added _request() wrapper to qBittorrent client that automatically
re-authenticates on 403 responses, preventing persistent auth failures after
session expiry. Replaced FormData with plain dicts for retry safety and added
raise_for_status() calls for clearer error messages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…torrent auth response body

aiohttp's default CookieJar silently rejects cookies from IP addresses,
causing qBittorrent sessions at IP-based URLs to lose their SID cookie
on every request (persistent 403 loop). Use CookieJar(unsafe=True) in
both the qBittorrent client and base client class.

Also validate the login response body for "Ok." since qBittorrent returns
HTTP 200 for both success and failure, and upgrade 403 re-auth log to info.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coreyeaston coreyeaston merged commit 6a980a0 into main Feb 11, 2026
1 check passed
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