Upgrades via the web UI are disabled until you run the latest image

Good morning,

I’m getting a message stating I can’t upgrade Discourse through the Web UI. I saw one other person with this error, but it turn out that person was on the wrong system. While I have no issue upgrading through the cli, I’m just curious to know why I’m receiving this message.

<html><head></head><body>
<h2>You are running an old version of the Discourse image.</h2>
<p>
Upgrades via the web UI are disabled until you run the latest image.
</p>
<p>
To do so log in to your server using SSH and run:
</p>

<pre>
cd /var/discourse
git pull
./launcher rebuild app
</pre>
<p>
<a href='https://meta.discourse.org/t/how-do-i-update-my-docker-image-to-latest/23325'>More info on our support site</a>
</p>
</body>
</html>

Generally the update via GUI is automatically disabled when the docker_manager needs to be updated first.
When you update via GUI the docker_manager you need to run the ./launcher rebuild app command to rebuild your discourse site, but because you have to do that, in this case is more profitable if you upgrade all (docker + plugins) directly via SSH.

For example, I always update from GUI, after finishing the updates I do the docker restart. When I see that the docker_manager want the update I do that via SSH, skipping the update via GUI, because my site goes offline for a few minutes anyway.

And the message that “You are running an old version of the Discourse image” doesn’t answer your question? If it said “You are running an old version of the Discourse Docker image” would that be any more clear?

As you noted, you’re the the first to be confused by this message, but I don’t know what else it could say.

The Docker image has a whole bunch of stuff in it (nginx, ruby, rails, for starters) and sometimes it needs to be updated.

Makes sense. Thanks, and that worked. :slight_smile:

1 Like

I’m running two instances of Discourse and I always upgrade both the same way, which is through the browser. I didn’t receive this message on the other system while upgrading.

Maybe the one that prompted with the command line upgrade did so because it’s running the non-Ubuntu/Azure Linux kernel and the other one isn’t?

My guess is that the one that didn’t ask for the upgrade was installed more recently.

It’s how old the docker container is, not anything to do with the local OS.