fix(network): return friendly offline message for memory downloads

This commit is contained in:
pixelpaws
2026-04-20 15:42:03 +08:00
parent 5a7f4dc88b
commit 9443175abc
2 changed files with 5 additions and 3 deletions

View File

@@ -22,6 +22,7 @@ from typing import Optional, Dict, Tuple, Callable, Union, Awaitable
from ..services.settings_manager import get_settings_manager
from .connectivity_guard import (
OFFLINE_COOLDOWN_ERROR,
OFFLINE_FRIENDLY_MESSAGE,
ConnectivityGuard,
)
from .errors import RateLimitError
@@ -803,7 +804,7 @@ class Downloader:
"""
guard = await ConnectivityGuard.get_instance()
if guard.should_block_request():
return False, OFFLINE_COOLDOWN_ERROR, None
return False, OFFLINE_FRIENDLY_MESSAGE, None
try:
session = await self.session
@@ -849,7 +850,7 @@ class Downloader:
if guard.is_network_unreachable_error(e):
guard.register_network_failure(e)
if guard.should_block_request():
return False, OFFLINE_COOLDOWN_ERROR, None
return False, OFFLINE_FRIENDLY_MESSAGE, None
logger.debug("Network unavailable during memory download: %s", e)
return False, str(e), None
logger.error(f"Error downloading to memory from {url}: {e}")

View File

@@ -6,6 +6,7 @@ import pytest
from py.services.connectivity_guard import (
OFFLINE_COOLDOWN_ERROR,
OFFLINE_FRIENDLY_MESSAGE,
ConnectivityGuard,
)
from py.services.downloader import Downloader
@@ -66,7 +67,7 @@ async def test_downloader_short_circuits_all_request_helpers_during_cooldown():
ok, payload, headers = await downloader.download_to_memory("https://example.invalid")
assert ok is False
assert payload == OFFLINE_COOLDOWN_ERROR
assert payload == OFFLINE_FRIENDLY_MESSAGE
assert headers is None
ok, payload = await downloader.get_response_headers("https://example.invalid")