I'm unable to upgrade from Ubuntu 18.10 to 19.04.

I verified 19.04 was officially released, and appears in https://changelogs.ubuntu.com/meta-release.

When I run sudo update-manager -c, I get the following error message in the terminal (though the GUI just happily reports no updates are available):

Failed to connect to https://changelogs.ubuntu.com/meta-release. Check your Internet connection or proxy settings

I tried accessing the file with wget changelogs.ubuntu.com/meta-release and got the following error message

--2019-04-20 21:01:27-- https://changelogs.ubuntu.com/meta-release Resolving changelogs.ubuntu.com (changelogs.ubuntu.com)..., 2001:67c:1560:8008::11

Connecting to changelogs.ubuntu.com (changelogs.ubuntu.com)||:443... connected.

ERROR: cannot verify changelogs.ubuntu.com's certificate, issued by ‘CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US’: Unable to locally verify the issuer's authority.

To connect to changelogs.ubuntu.com insecurely, use `--no-check-certificate'.

Though when I tried accessing the same file with curl changelogs.ubuntu.com/meta-release, the download succeeded (I read somewhere its certificates might be more up-to-date).

As I've seen suggested, I restarted my system multiple times, waited more than 24 hours, and tried deleting the local ~/.cache/update-manager-core/meta-release, but that didn't help.

I verified the site's certificates on https://www.ssllabs.com/ssltest/analyze.html?d=changelogs.ubuntu.com&latest and got an A+.

I'd prefer solutions that don't require me to get the file over http instead of https.


Here's how I solved my problem:

I downloaded the meta-release file over https using curl: curl http://changelogs.ubuntu.com/meta-release > ~/.cache/update-manager-core/meta-release.

Then I edited the local /etc/update-manager/meta-release to be:

# default location for the meta-release file

#URI = https://changelogs.ubuntu.com/meta-release
URI = file:///home/YOUR-USERNAME/.cache/update-manager-core/meta-release
URI_LTS = https://changelogs.ubuntu.com/meta-release-lts

Note you'll have to change YOUR-USERNAME to the appropriate value on your system.

The upgrade works smoothly now!

|improve this answer|||||
  • just a personal nitpick question; could you possibly replace the username slot with the USER environment variable, and have it work? part of me doubts it since security and i don't know what type of file /etc/update-manager/meta-release is, but i figured i'd ask – EarthToAccess Apr 20 '19 at 20:02
  • @EarthToAccess, I tried specifying the username as $USER$ and as {USER} now - doesn't seem to work. – Eli_B Apr 30 '19 at 17:39
  • hmm, interesting. it probably doesn't work as a security measure, otherwise you could create a sh script to modify things like /etc/update-manage/meta-release and destroy an install. – EarthToAccess May 1 '19 at 15:06

My machines are configured to use an apt-cache, which I fixed by adding a PassThroughPattern to my /etc/apt-cacher-ng/acng.conf

PassThroughPattern: ^changelogs\.ubuntu\.com:443$

If you already have a PassThroughPattern, you'll need to edit that, e.g. if you currently have:

PassThroughPattern: soandso.com:443

change it to

PassThroughPattern: ^(soandso\.com|changelogs\.ubuntu\.com):443$

If this doesn't help, you may want to try the following:

$ ( sed -ne 's/^ *\(from\|import.*\)/\1/p' \
    /usr/bin/do-release-upgrade \
    echo "init_proxy()" \
    echo "MetaReleaseCore.DEBUG = True" \
    echo "MetaReleaseCore(useProposed=True)"\
  ) | python3

This should give you additional information on what is causing it to fail.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.