From b57e93f1bfd717f2376cd36dca499735d85a4ab5 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sat, 18 Apr 2026 14:18:43 -0400 Subject: [PATCH] chore(downloads): log failed resolutions and tighten retry dataclass/tests Co-Authored-By: Claude Sonnet 4.6 --- backend/app/tasks/downloads.py | 7 ++++++- backend/tests/tasks/test_downloads_patreon_retry.py | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/app/tasks/downloads.py b/backend/app/tasks/downloads.py index 78acc22..3cdfa87 100644 --- a/backend/app/tasks/downloads.py +++ b/backend/app/tasks/downloads.py @@ -119,7 +119,7 @@ def _extract_vanity_from_url(url: str) -> Optional[str]: class _DownloadAttempt: """Result of executing a download, possibly with a retry after campaign-ID resolution.""" dl_result: DownloadResult - resolved_campaign_id: Optional[str] + resolved_campaign_id: Optional[str] = None async def _execute_download_with_retry( @@ -176,6 +176,11 @@ async def _execute_download_with_retry( return _DownloadAttempt( dl_result=retry_result, resolved_campaign_id=campaign_id ) + else: + logger.warning( + f"Could not resolve campaign ID for {subscription_name}/patreon ({vanity}); " + f"original failure will be recorded" + ) return _DownloadAttempt(dl_result=dl_result, resolved_campaign_id=None) diff --git a/backend/tests/tasks/test_downloads_patreon_retry.py b/backend/tests/tasks/test_downloads_patreon_retry.py index 361724d..f0fe4f3 100644 --- a/backend/tests/tasks/test_downloads_patreon_retry.py +++ b/backend/tests/tasks/test_downloads_patreon_retry.py @@ -197,6 +197,7 @@ async def test_unextractable_vanity_skips_retry(monkeypatch): ) assert result.dl_result is failure + assert result.resolved_campaign_id is None resolver_mock.assert_not_called() assert gdl.download.call_count == 1