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