You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
All Base (Noble) mirrors show "Unreachable" due to Cloudflare blocking pycurl's default user-agent on archive.ubuntu.com #276
In the Software Sources mirror selector, all Base (Noble) Ubuntu mirrors
show "Unreachable" even though they are fully accessible via apt and curl.
The issue affects Linux Mint 22.1 Xia.
Root Cause
The get_url_last_modified() function in mintSources.py uses pycurl
with its default user-agent to fetch ls-lR.gz from the base_default
mirror (archive.ubuntu.com) to establish a reference timestamp.
However, archive.ubuntu.com is behind Cloudflare, which blocks pycurl's
default user-agent with a 403 Forbidden response. This causes pycurl.INFO_FILETIME to return -1, making default_mirror_date = None.
Since every candidate mirror's freshness is compared against default_mirror_date, all mirrors fail the check and are marked
"Unreachable" regardless of their actual availability.
Steps To Reproduce
Open Software Sources
Click on Base (Noble) mirror selector
All mirrors show "Unreachable"
Meanwhile, sudo apt update works perfectly fine
Proof of the 403 Block
Running the exact same logic mintSources uses internally without a user-agent:
But for what my opinion as a busybody end user is worth, the real issue is with Cloudflare. Since whatever 'bot protection' they've set up can be hacked around just by adding fake user-agents to requests, it isn't really protection at all, just a useless hindrance for legitimate traffic. It sets a bad precedent, because correct user-agent headers are important for appropriately formatted responses, browser statistics and more.
Activity
clefebvre commentedon May 20, 2026
Thanks for this, great analysis.
Set a user agent when using pycurl
clefebvre commentedon May 21, 2026
Fixed in 2.4.2.
mscheper commentedon Jun 13, 2026
@clefebvre and @HollagenDew: Thanks so much for the analysis and the patch.
But for what my opinion as a busybody end user is worth, the real issue is with Cloudflare. Since whatever 'bot protection' they've set up can be hacked around just by adding fake
user-agents to requests, it isn't really protection at all, just a useless hindrance for legitimate traffic. It sets a bad precedent, because correctuser-agentheaders are important for appropriately formatted responses, browser statistics and more.Has this been raised with Cloudflare?
Set a user agent when using pycurl
Set a user agent when using pycurl