Your original guess was right. 15.04 is supported through 2016-02-04, so
do-release-upgrade is trying to upgrade you to the next supported release compared to the one you have.
Here's the description of normal upgrade prompting mode from
Check to see if a new release is available. If more than one new release is found, the release upgrader will attempt to upgrade to the release that immediately succeeds the currently-running release.
So if I'm on 14.04 it should be trying to take me to 14.10, but right now
do-release-upgrade is trying to take the OP (and me) to 15.04 instead.
So reading through
/usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.py it looks like we skip unsupported releases when figuring out what release to upgrade to (unless you're using the developer flag):
# then see what we can upgrade to
upgradable_to = ""
for dist in dists:
if dist.date > current_dist.date:
# Only offer to upgrade to an unsupported release if running
# with useDevelopmentRelease, this way one can upgrade from an
# LTS release to the next supported non-LTS release e.g. from
# 14.04 to 15.04.
if not dist.supported and not self.useDevelopmentRelease:
upgradable_to = dist
self._debug("new dist: %s" % upgradable_to)
I should add that I do not recommend trying to get around this with
do-release-upgrade -d. When I tried it with
prompt=normal, I got 404s, since 14.10 is EoL. I also think in my delirium I must have tried
do-release-upgrade -p, which tried to take me straight to 16.04. By the time I realized it was taking me to xenial everything was broken and I had to restore from factory. In the end I decided I'll wait until 16.04 is released and do a fresh install.