** Description changed: If the upgrader fails its url_downloadable check from http://archive.ubuntu.com (while apt update succeeds), it will prompt for the default sources to be restored. If yes is selected, an AttributeError will be raised as the _addDefaultSources() function attempts to set a property (suites) without a setter. - Example: + In this case the url_downloadable fails since it receives "403: + Forbidden". + Interestingly this error does not occur if the apt update fails. - Reading cache + ## Example 1 (apt update succeeds): - Checking package manager + ... - Reading package lists... 0% + Hit http://archive.ubuntu.com/ubuntu noble InRelease + Hit http://security.ubuntu.com/ubuntu noble-security InRelease + Hit http://archive.ubuntu.com/ubuntu noble-updates InRelease + Hit http://archive.ubuntu.com/ubuntu noble-backports InRelease + Fetched 0 B in 0s (0 B/s) - Reading package lists... 100% - - Reading package lists... Done - - Building dependency tree... 0% - - Building dependency tree... 0% - - Building dependency tree... 50% - - Building dependency tree... 50% - - Building dependency tree... Done - - Reading state information... 0% - - Reading state information... 0% - - - Reading state information... Done - - 0% [Working] - 0% [Working] - 0% [Connecting to archive.ubuntu.com] - 0% [Connecting to archive.ubuntu.com] - 0% [Connecting to archive.ubuntu.com (104.20.28.246)] - 0% [Connecting to archive.ubuntu.com (104.20.28.246)] - 0% [Connecting to archive.ubuntu.com (104.20.28.246)] - 0% [Connecting to archive.ubuntu.com (104.20.28.246)] - 0% [Connected to archive.ubuntu.com (104.20.28.246)] - 0% [Connected to archive.ubuntu.com (104.20.28.246)] - 0% [Waiting for headers] [Connecting to security.ubuntu.com] - 0% [Waiting for headers] [Connecting to security.ubuntu.com] - 0% [Waiting for headers] - 0% [Waiting for headers] - 0% [Waiting for headers] [Connected to security.ubuntu.com (172.66.152.176)] - 0% [Waiting for headers] [Connected to security.ubuntu.com (172.66.152.176)] - 0% [Waiting for headers] [Waiting for headers] - 0% [Waiting for headers] [Waiting for headers] - Hit http://archive.ubuntu.com/ubuntu noble InRelease - - 0% [Waiting for headers] - 0% [Waiting for headers] - 0% [Waiting for headers] [Waiting for headers] - 0% [Waiting for headers] [Waiting for headers] - Hit http://security.ubuntu.com/ubuntu noble-security InRelease - - 0% [Waiting for headers] - 0% [Waiting for headers] - 87% [Waiting for headers] - 87% [Waiting for headers] - 87% [Waiting for headers] - 87% [Waiting for headers] - 95% [Waiting for headers] - 95% [Waiting for headers] - Hit http://archive.ubuntu.com/ubuntu noble-updates InRelease - - 95% [Working] - 95% [Working] - 95% [Waiting for headers] - 95% [Waiting for headers] - 97% [Waiting for headers] - 97% [Waiting for headers] - Hit http://archive.ubuntu.com/ubuntu noble-backports InRelease - - 97% [Working] - 97% [Working] - 97% [Working] - 97% [Working] - 99% [Working] - 99% [Working] - Fetched 0 B in 0s (0 B/s) - - Reading package lists... 0% - - Reading package lists... 100% - - - Reading package lists... Done - - Building dependency tree... 0% - - Building dependency tree... 0% - - Building dependency tree... 50% - - Building dependency tree... 50% - - - Building dependency tree... Done - - Reading state information... 0% - - Reading state information... 0% - - - Reading state information... Done - No snaps are installed yet. Try 'snap install hello-world'. - - Checking for installed snaps - - Calculating snap size requirements + ... Updating repository information Required apt sources are missing - This is probably because one or more of the following mirrors are - out-of-date or unreachable: + This is probably because one or more of the following mirrors are + out-of-date or unreachable: http://archive.ubuntu.com/ubuntu + + Would you like to continue the upgrade using default sources? If you + select 'No', the upgrade will be aborted. + + Continue [yN] y + + Traceback (most recent call last): + File "/tmp/ubuntu-release-upgrader-7d18weqn/resolute", line 8, in <module> + sys.exit(main()) + ^^^^^^ + File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeMain.py", line 235, in main + if app.run(): + ^^^^^^^^^ + File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 2014, in run + return self.fullUpgrade() + ^^^^^^^^^^^^^^^^^^ + File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1876, in fullUpgrade + if not self.updateDeb822Sources(): + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1061, in updateDeb822Sources + if not self.rewriteDeb822Sources(): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1048, in rewriteDeb822Sources + self._addDefaultSources() + File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 805, in _addDefaultSources + e.suites = sorted([self.toDist, self.toDist + '-updates'], + ^^^^^^^^ + AttributeError: property 'suites' of 'ExplodedDeb822SourceEntry' object has no setter + + ## Example 2 (apt update fails/non-default source is used) + + ... + + Could not resolve 'refridgerator.ubuntu.com' + + Err http://refridgerator.ubuntu.com/ubuntu noble-updates InRelease + + Could not resolve 'refridgerator.ubuntu.com' + + Err http://refridgerator.ubuntu.com/ubuntu noble-backports InRelease + + Could not resolve 'refridgerator.ubuntu.com' + + Err http://refridgerator.ubuntu.com/ubuntu noble-security InRelease + + Could not resolve 'refridgerator.ubuntu.com' + + ... + + Updating repository information + + Required apt sources are missing + + This is probably because of one or more of the following unsupported + mirrors was disabled: + + http://refridgerator.ubuntu.com/ubuntu + http://refridgerator.ubuntu.com/ubuntu Would you like to continue the upgrade using default sources? If you select 'No', the upgrade will be aborted. Continue [yN] y - Traceback (most recent call last): - File "/tmp/ubuntu-release-upgrader-7d18weqn/resolute", line 8, in <module> - sys.exit(main()) - ^^^^^^ - File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeMain.py", line 235, in main - if app.run(): - ^^^^^^^^^ - File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 2014, in run - return self.fullUpgrade() - ^^^^^^^^^^^^^^^^^^ - File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1876, in fullUpgrade - if not self.updateDeb822Sources(): - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1061, in updateDeb822Sources - if not self.rewriteDeb822Sources(): - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1048, in rewriteDeb822Sources - self._addDefaultSources() - File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 805, in _addDefaultSources - e.suites = sorted([self.toDist, self.toDist + '-updates'], - ^^^^^^^^ - AttributeError: property 'suites' of 'ExplodedDeb822SourceEntry' object has no setter + 0% [Working] + 0% [Working] + 0% [Connecting to archive.ubuntu.com] + 0% [Connecting to archive.ubuntu.com] + 0% [Connecting to archive.ubuntu.com (172.66.152.176)] + 0% [Connecting to archive.ubuntu.com (172.66.152.176)] + 0% [Connecting to archive.ubuntu.com (172.66.152.176)] + 0% [Connecting to archive.ubuntu.com (172.66.152.176)] + 0% [Connected to archive.ubuntu.com (172.66.152.176)] + 0% [Connected to archive.ubuntu.com (172.66.152.176)] + 0% [Waiting for headers] [Connecting to security.ubuntu.com] + 0% [Waiting for headers] [Connecting to security.ubuntu.com] + 0% [Waiting for headers] [Connecting to security.ubuntu.com (104.20.28.246)] + 0% [Waiting for headers] [Connecting to security.ubuntu.com (104.20.28.246)] + 0% [Waiting for headers] [Connected to security.ubuntu.com (104.20.28.246)] + 0% [Waiting for headers] [Connected to security.ubuntu.com (104.20.28.246)] + 0% [Waiting for headers] [Waiting for headers] + 0% [Waiting for headers] [Waiting for headers] + Get:1 http://security.ubuntu.com/ubuntu resolute-security InRelease [136 kB] - *** Send problem report to the developers? + 10% [Waiting for headers] [1 InRelease 14.1 kB/136 kB 10%] + 10% [Waiting for headers] [1 InRelease 14.1 kB/136 kB 10%] + Get:2 http://archive.ubuntu.com/ubuntu resolute InRelease [136 kB] - After the problem report has been sent, please fill out the form in the - automatically opened web browser. + 12% [2 InRelease 14.1 kB/136 kB 10%] [1 InRelease 18.5 kB/136 kB 13%] + 12% [2 InRelease 14.1 kB/136 kB 10%] [1 InRelease 18.5 kB/136 kB 13%] + 75% [2 InRelease 69.1 kB/136 kB 51%] + 75% [2 InRelease 69.1 kB/136 kB 51%] + 75% [2 InRelease 69.1 kB/136 kB 51%] + 75% [2 InRelease 69.1 kB/136 kB 51%] + 60% [2 InRelease 85.1 kB/136 kB 62%] + 60% [2 InRelease 85.1 kB/136 kB 62%] + 60% [2 InRelease 85.1 kB/136 kB 62%] + 60% [2 InRelease 85.1 kB/136 kB 62%] + 60% [2 InRelease 85.1 kB/136 kB 62%] [Waiting for headers] + 60% [2 InRelease 85.1 kB/136 kB 62%] [Waiting for headers] + Get:3 http://security.ubuntu.com/ubuntu resolute-security/main amd64 Packages [23.0 kB] - What would you like to do? Your options are: - S: Send report (39.4 KB) - V: View report - K: Keep report file for sending later or copying to somewhere else - I: Cancel and ignore future crashes of this program version - C: Cancel - Please choose (S/V/K/I/C): c - - - === Command terminated with exit status 1 (Wed May 6 15:45:29 2026) === + 69% [2 InRelease 93.8 kB/136 kB 69%] [3 Packages 23.0 kB/23.0 kB 100%] + 69% [2 InRelease 93.8 kB/136 kB 69%] [3 Packages 23.0 kB/23.0 kB 100%] + 70% [2 InRelease 96.7 kB/136 kB 71%] + 70% [2 InRelease 96.7 kB/136 kB 71%] + 70% [2 InRelease 96.7 kB/136 kB 71%] + 70% [2 InRelease 96.7 kB/136 kB 71%] + 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] + 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] + 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] + 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] + 70% [2 InRelease 96.7 kB/136 kB 71%] [Waiting for headers] + 70% [2 InRelease 96.7 kB/136 kB 71%] [Waiting for headers] + Get:4 http://security.ubuntu.com/ubuntu resolute-security/main Translation-en [12.6 kB]
** Description changed: If the upgrader fails its url_downloadable check from http://archive.ubuntu.com (while apt update succeeds), it will prompt for the default sources to be restored. If yes is selected, an AttributeError will be raised as the _addDefaultSources() function attempts to set a property (suites) without a setter. - In this case the url_downloadable fails since it receives "403: + In this case the url_downloadable check fails since it receives "403: Forbidden". Interestingly this error does not occur if the apt update fails. ## Example 1 (apt update succeeds): ... Hit http://archive.ubuntu.com/ubuntu noble InRelease Hit http://security.ubuntu.com/ubuntu noble-security InRelease Hit http://archive.ubuntu.com/ubuntu noble-updates InRelease Hit http://archive.ubuntu.com/ubuntu noble-backports InRelease Fetched 0 B in 0s (0 B/s) ... Updating repository information Required apt sources are missing This is probably because one or more of the following mirrors are out-of-date or unreachable: http://archive.ubuntu.com/ubuntu Would you like to continue the upgrade using default sources? If you select 'No', the upgrade will be aborted. Continue [yN] y Traceback (most recent call last): File "/tmp/ubuntu-release-upgrader-7d18weqn/resolute", line 8, in <module> sys.exit(main()) ^^^^^^ File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeMain.py", line 235, in main if app.run(): ^^^^^^^^^ File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 2014, in run return self.fullUpgrade() ^^^^^^^^^^^^^^^^^^ File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1876, in fullUpgrade if not self.updateDeb822Sources(): ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1061, in updateDeb822Sources if not self.rewriteDeb822Sources(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 1048, in rewriteDeb822Sources self._addDefaultSources() File "/tmp/ubuntu-release-upgrader-7d18weqn/DistUpgrade/DistUpgradeController.py", line 805, in _addDefaultSources e.suites = sorted([self.toDist, self.toDist + '-updates'], ^^^^^^^^ AttributeError: property 'suites' of 'ExplodedDeb822SourceEntry' object has no setter ## Example 2 (apt update fails/non-default source is used) ... - - Could not resolve 'refridgerator.ubuntu.com' - - Err http://refridgerator.ubuntu.com/ubuntu noble-updates InRelease - Could not resolve 'refridgerator.ubuntu.com' - - Err http://refridgerator.ubuntu.com/ubuntu noble-backports InRelease + Could not resolve 'refridgerator.ubuntu.com' - Could not resolve 'refridgerator.ubuntu.com' - - Err http://refridgerator.ubuntu.com/ubuntu noble-security InRelease + Err http://refridgerator.ubuntu.com/ubuntu noble-updates InRelease - Could not resolve 'refridgerator.ubuntu.com' + Could not resolve 'refridgerator.ubuntu.com' + + Err http://refridgerator.ubuntu.com/ubuntu noble-backports InRelease + + Could not resolve 'refridgerator.ubuntu.com' + + Err http://refridgerator.ubuntu.com/ubuntu noble-security InRelease + + Could not resolve 'refridgerator.ubuntu.com' ... Updating repository information Required apt sources are missing - This is probably because of one or more of the following unsupported - mirrors was disabled: + This is probably because of one or more of the following unsupported + mirrors was disabled: - http://refridgerator.ubuntu.com/ubuntu - http://refridgerator.ubuntu.com/ubuntu + http://refridgerator.ubuntu.com/ubuntu + http://refridgerator.ubuntu.com/ubuntu - Would you like to continue the upgrade using default sources? If you - select 'No', the upgrade will be aborted. + Would you like to continue the upgrade using default sources? If you + select 'No', the upgrade will be aborted. Continue [yN] y - 0% [Working] - 0% [Working] - 0% [Connecting to archive.ubuntu.com] - 0% [Connecting to archive.ubuntu.com] - 0% [Connecting to archive.ubuntu.com (172.66.152.176)] - 0% [Connecting to archive.ubuntu.com (172.66.152.176)] - 0% [Connecting to archive.ubuntu.com (172.66.152.176)] - 0% [Connecting to archive.ubuntu.com (172.66.152.176)] - 0% [Connected to archive.ubuntu.com (172.66.152.176)] - 0% [Connected to archive.ubuntu.com (172.66.152.176)] - 0% [Waiting for headers] [Connecting to security.ubuntu.com] - 0% [Waiting for headers] [Connecting to security.ubuntu.com] - 0% [Waiting for headers] [Connecting to security.ubuntu.com (104.20.28.246)] - 0% [Waiting for headers] [Connecting to security.ubuntu.com (104.20.28.246)] - 0% [Waiting for headers] [Connected to security.ubuntu.com (104.20.28.246)] - 0% [Waiting for headers] [Connected to security.ubuntu.com (104.20.28.246)] - 0% [Waiting for headers] [Waiting for headers] - 0% [Waiting for headers] [Waiting for headers] - Get:1 http://security.ubuntu.com/ubuntu resolute-security InRelease [136 kB] + 0% [Working] + 0% [Working] + 0% [Connecting to archive.ubuntu.com] + 0% [Connecting to archive.ubuntu.com] + 0% [Connecting to archive.ubuntu.com (172.66.152.176)] + 0% [Connecting to archive.ubuntu.com (172.66.152.176)] + 0% [Connecting to archive.ubuntu.com (172.66.152.176)] + 0% [Connecting to archive.ubuntu.com (172.66.152.176)] + 0% [Connected to archive.ubuntu.com (172.66.152.176)] + 0% [Connected to archive.ubuntu.com (172.66.152.176)] + 0% [Waiting for headers] [Connecting to security.ubuntu.com] + 0% [Waiting for headers] [Connecting to security.ubuntu.com] + 0% [Waiting for headers] [Connecting to security.ubuntu.com (104.20.28.246)] + 0% [Waiting for headers] [Connecting to security.ubuntu.com (104.20.28.246)] + 0% [Waiting for headers] [Connected to security.ubuntu.com (104.20.28.246)] + 0% [Waiting for headers] [Connected to security.ubuntu.com (104.20.28.246)] + 0% [Waiting for headers] [Waiting for headers] + 0% [Waiting for headers] [Waiting for headers] + Get:1 http://security.ubuntu.com/ubuntu resolute-security InRelease [136 kB] - 10% [Waiting for headers] [1 InRelease 14.1 kB/136 kB 10%] - 10% [Waiting for headers] [1 InRelease 14.1 kB/136 kB 10%] - Get:2 http://archive.ubuntu.com/ubuntu resolute InRelease [136 kB] + 10% [Waiting for headers] [1 InRelease 14.1 kB/136 kB 10%] + 10% [Waiting for headers] [1 InRelease 14.1 kB/136 kB 10%] + Get:2 http://archive.ubuntu.com/ubuntu resolute InRelease [136 kB] - 12% [2 InRelease 14.1 kB/136 kB 10%] [1 InRelease 18.5 kB/136 kB 13%] - 12% [2 InRelease 14.1 kB/136 kB 10%] [1 InRelease 18.5 kB/136 kB 13%] - 75% [2 InRelease 69.1 kB/136 kB 51%] - 75% [2 InRelease 69.1 kB/136 kB 51%] - 75% [2 InRelease 69.1 kB/136 kB 51%] - 75% [2 InRelease 69.1 kB/136 kB 51%] - 60% [2 InRelease 85.1 kB/136 kB 62%] - 60% [2 InRelease 85.1 kB/136 kB 62%] - 60% [2 InRelease 85.1 kB/136 kB 62%] - 60% [2 InRelease 85.1 kB/136 kB 62%] - 60% [2 InRelease 85.1 kB/136 kB 62%] [Waiting for headers] - 60% [2 InRelease 85.1 kB/136 kB 62%] [Waiting for headers] + 12% [2 InRelease 14.1 kB/136 kB 10%] [1 InRelease 18.5 kB/136 kB 13%] + 12% [2 InRelease 14.1 kB/136 kB 10%] [1 InRelease 18.5 kB/136 kB 13%] + 75% [2 InRelease 69.1 kB/136 kB 51%] + 75% [2 InRelease 69.1 kB/136 kB 51%] + 75% [2 InRelease 69.1 kB/136 kB 51%] + 75% [2 InRelease 69.1 kB/136 kB 51%] + 60% [2 InRelease 85.1 kB/136 kB 62%] + 60% [2 InRelease 85.1 kB/136 kB 62%] + 60% [2 InRelease 85.1 kB/136 kB 62%] + 60% [2 InRelease 85.1 kB/136 kB 62%] + 60% [2 InRelease 85.1 kB/136 kB 62%] [Waiting for headers] + 60% [2 InRelease 85.1 kB/136 kB 62%] [Waiting for headers] Get:3 http://security.ubuntu.com/ubuntu resolute-security/main amd64 Packages [23.0 kB] - 69% [2 InRelease 93.8 kB/136 kB 69%] [3 Packages 23.0 kB/23.0 kB 100%] - 69% [2 InRelease 93.8 kB/136 kB 69%] [3 Packages 23.0 kB/23.0 kB 100%] - 70% [2 InRelease 96.7 kB/136 kB 71%] - 70% [2 InRelease 96.7 kB/136 kB 71%] - 70% [2 InRelease 96.7 kB/136 kB 71%] - 70% [2 InRelease 96.7 kB/136 kB 71%] - 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] - 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] - 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] - 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] - 70% [2 InRelease 96.7 kB/136 kB 71%] [Waiting for headers] - 70% [2 InRelease 96.7 kB/136 kB 71%] [Waiting for headers] + 69% [2 InRelease 93.8 kB/136 kB 69%] [3 Packages 23.0 kB/23.0 kB 100%] + 69% [2 InRelease 93.8 kB/136 kB 69%] [3 Packages 23.0 kB/23.0 kB 100%] + 70% [2 InRelease 96.7 kB/136 kB 71%] + 70% [2 InRelease 96.7 kB/136 kB 71%] + 70% [2 InRelease 96.7 kB/136 kB 71%] + 70% [2 InRelease 96.7 kB/136 kB 71%] + 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] + 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] + 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] + 70% [3 Packages store 0 B] [2 InRelease 96.7 kB/136 kB 71%] + 70% [2 InRelease 96.7 kB/136 kB 71%] [Waiting for headers] + 70% [2 InRelease 96.7 kB/136 kB 71%] [Waiting for headers] Get:4 http://security.ubuntu.com/ubuntu resolute-security/main Translation-en [12.6 kB] -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2151640 Title: Falling back to default sources raises AttributeError if archive.ubuntu.com is unreachable To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/2151640/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
