[Bug 2151246] [NEW] upgrades from all releases fail to fetch release announcement

Nick Rosbrook 2151246 at bugs.launchpad.net
Tue May 5 21:14:49 UTC 2026


Public bug reported:

For example, from a fresh jammy container:

root at j:~# do-release-upgrade                         
Checking for a new Ubuntu release
Could not find the release announcement
The server may be overloaded.

Or from a fresh noble container:

root at n:~# do-release-upgrade -d
Checking for a new Ubuntu release
Could not find the release announcement
The server may be overloaded.

This error message corresponds to u-r-u getting a 403 when attempting to
reach the release announcement page. Note that at the time of writing,
the pages are accessible by browser, curl, etc. but not u-r-u.

In fact, requests.get seems to work, but urllib.request.urlopen (which
u-r-u uses) gets a 403:

root at q:~# python3
Python 3.13.7 (main, Mar  3 2026, 12:19:54) [GCC 15.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from urllib.request import urlopen
>>> 
root at q:~# python3
Python 3.13.7 (main, Mar  3 2026, 12:19:54) [GCC 15.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> url = "http://archive.ubuntu.com/ubuntu/dists/resolute/main/dist-upgrader-all/current/ReleaseAnnouncement"
>>> from urllib.request import urlopen
>>> urlopen(url)
Traceback (most recent call last):
  File "<python-input-2>", line 1, in <module>
    urlopen(url)
    ~~~~~~~^^^^^
  File "/usr/lib/python3.13/urllib/request.py", line 189, in urlopen
    return opener.open(url, data, timeout)
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/urllib/request.py", line 495, in open
    response = meth(req, response)
  File "/usr/lib/python3.13/urllib/request.py", line 604, in http_response
    response = self.parent.error(
        'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.13/urllib/request.py", line 533, in error
    return self._call_chain(*args)
           ~~~~~~~~~~~~~~~~^^^^^^^
  File "/usr/lib/python3.13/urllib/request.py", line 466, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.13/urllib/request.py", line 613, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
>>> import requests
>>> requests.get(url)
<Response [200]>

This is most likely caused by changes in infrastructure due to recent
issues.

** Affects: ubuntu-release-upgrader (Ubuntu)
     Importance: High
         Status: Triaged

** Changed in: ubuntu-release-upgrader (Ubuntu)
       Status: New => Triaged

** Changed in: ubuntu-release-upgrader (Ubuntu)
   Importance: Undecided => High

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/2151246

Title:
  upgrades from all releases fail to fetch release announcement

Status in ubuntu-release-upgrader package in Ubuntu:
  Triaged

Bug description:
  For example, from a fresh jammy container:

  root at j:~# do-release-upgrade                         
  Checking for a new Ubuntu release
  Could not find the release announcement
  The server may be overloaded.

  Or from a fresh noble container:

  root at n:~# do-release-upgrade -d
  Checking for a new Ubuntu release
  Could not find the release announcement
  The server may be overloaded.

  This error message corresponds to u-r-u getting a 403 when attempting
  to reach the release announcement page. Note that at the time of
  writing, the pages are accessible by browser, curl, etc. but not
  u-r-u.

  In fact, requests.get seems to work, but urllib.request.urlopen (which
  u-r-u uses) gets a 403:

  root at q:~# python3
  Python 3.13.7 (main, Mar  3 2026, 12:19:54) [GCC 15.2.0] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  >>> from urllib.request import urlopen
  >>> 
  root at q:~# python3
  Python 3.13.7 (main, Mar  3 2026, 12:19:54) [GCC 15.2.0] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  >>> url = "http://archive.ubuntu.com/ubuntu/dists/resolute/main/dist-upgrader-all/current/ReleaseAnnouncement"
  >>> from urllib.request import urlopen
  >>> urlopen(url)
  Traceback (most recent call last):
    File "<python-input-2>", line 1, in <module>
      urlopen(url)
      ~~~~~~~^^^^^
    File "/usr/lib/python3.13/urllib/request.py", line 189, in urlopen
      return opener.open(url, data, timeout)
             ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.13/urllib/request.py", line 495, in open
      response = meth(req, response)
    File "/usr/lib/python3.13/urllib/request.py", line 604, in http_response
      response = self.parent.error(
          'http', request, response, code, msg, hdrs)
    File "/usr/lib/python3.13/urllib/request.py", line 533, in error
      return self._call_chain(*args)
             ~~~~~~~~~~~~~~~~^^^^^^^
    File "/usr/lib/python3.13/urllib/request.py", line 466, in _call_chain
      result = func(*args)
    File "/usr/lib/python3.13/urllib/request.py", line 613, in http_error_default
      raise HTTPError(req.full_url, code, msg, hdrs, fp)
  urllib.error.HTTPError: HTTP Error 403: Forbidden
  >>> import requests
  >>> requests.get(url)
  <Response [200]>

  This is most likely caused by changes in infrastructure due to recent
  issues.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/2151246/+subscriptions





More information about the foundations-bugs mailing list