"This site was just updated" popups are annoying

I’m a regular user on a Discourse forum, and I usually have many tabs open with many discussions. The problem is what when Discourse finds an update, I get the same popup in every tab. Clicking Refresh in one tab doesn’t refresh all other tabs (at least in Firefox 87/macOS), so the forum keeps asking me the same question ad nauseam.

The second problem is that, honestly, it’s a detail that I don’t care about. I know you take pride in your releases and there’s clever ServiceWorker machinery in there to update. But it’s not something that affects me to the degree of urgency that this popup has. I usually can’t even tell what changed. I don’t feel like I need to drop everything I was doing and update immediately. If these updates actually are some overdue urgent security updates, then you should say so explicitly, or even just refresh without asking.

The popup demands a decision from me, but gives me no information or context to make this decision, and no justification for presenting it as an urgent interruption.


There is prior art of using more unobtrusive “Please update the page” in other Single Page Application


If you are actively using the site then this alert never shows up. We hijack the transition.

It only shows up if the JavaScript payloads have changed and multiple hours have passed since the update.

It is not practical for us to build a system that says that user X does not care about update Y. Update Y may include a fix to a critical workflow of user X.

I get though that it can be frustrating if you have a site you are extremely active on, you are tab hoarding and it updates multiple times a day.

I guess bottom line, I hear your frustration here, but I am not sure there are any easy changes we can make to improve the situation for your use case.


I agree this notification popup is confusing. Usually when I see it, my first thought is that there is some new content to see. But actually it is Discourse that is updated and not that there are new posts ready to be looked at.

Is there a way to just update Discourse without asking the user to make a decision about it?


The problem is, you may be in the middle of something.

Maybe … if you are in a background tab… and you don’t have a composer open to a different topic … and we can retain scroll position … and we can guarantee that we will not run a distributed denial of service attack on sites due to an update (staggering, random timeouts)

It gets complicated, we are probably looking at days of work here to ensure a transparent update is safe.

Also … sites that deploy a lot will increase traffic cause we would force intermediate versions to load.


Ok maybe we can improve the issue I am describing with just a copy change to something like “The app powering this site has updated.”


As @codinghorror says, copy improvements certainly super welcome :heart:


It never shows up in the tab you’re using. It shows up on all the other tabs and stays there even while you’re clicking around on the main one.


I see this popup all the time, when the app is updated. I wonder if it’s because I too keep several tabs open. I suspect this is power user behavior and it’s also rare - sites don’t update that often unless they are on the bleeding edge. So maybe this whole question is not important enough to devote much time to it.

But the copy could be improved to explain a little better what’s going on. I just made a pull request to propose…

This site just received a software upgrade. Get the latest version now?


I think this is on the right track, but for me (if I didn’t know what this was about) it reads a bit like I will have to download and install something, which might discourage some folks.

This site just received a software upgrade. Reload to see the latest version?

Reload Later


Yeah that’s a good point. I guess people who don’t realize the site they are on is an app will be confused by the reference to software. It almost sounds like a phishing situation. :thinking:

1 Like

I’m honestly surprised you would run into this – how often is the site owner updating the site?

I’m not a big fan of adding techno-jargon to this message to “improve” it, though… it seems fairly close to what WhatsApp is doing:

Update Available – Click to update WhatsApp

This site was just updated. Refresh now for the latest version?

I guess we could change it to

Update available. Update now?

I’m open to whatever copy sounds better.


One concrete improvement that would help for my usage pattern is to reload all of the tabs when I click Yes on any of them.


Not sure about this… 40 tabs hitting Discourse… instant rate limit. Plus … why drive all that traffic?


The OP’s complaint is legit. I encounter it all the time, the behavior is not intuitive and it’s not clear at all what will happen when you select OK or CANCEL. It has been an oddity of Discourse I have just gotten used to over the years and no longer worry about. This is the first time I’ve seen someone else complain about it. It’s an issue but it only affects power users on sites like meta that are updated frequently, and so I am coming around to the idea that less is more. I don’t think we need to do anything, unless we want to simplify the language further as @codinghorror suggests.

I’d be more curious to explore why so many of us power users feel the need to open multiple tabs. Are there improvements we can make to discourse to make that less necessary? For me, it’s usually about drafts. I am in the middle of a post that is taking me some time when I get a notification about another post I am involved in and I control-click to go there so I can go deal with that, but then maybe that becomes a rabbit hole and I have to do it again when I get another notification or see a post that needs handling, ad infinitum. After an hour or two I find myself with a bunch of tabs open that I then have to work my way back through to finish the posts and close the tabs. Because meta gets updated more frequently than other sites and I hang out here much of the day I get this warning frequently.


Does it need to be a modal? Browsers have a pop-up for critical update, but it’s usually up in the corner and doesn’t block the full page. Falco’s whatsapp example seems better too.

Could we stick something in the header?


That’s a great idea, this looks a lot better and less disruptive.

Core question here is how much actual urgency is there? Like if I don’t update Chrome for a week, no big deal. With this mock-up banner version similarly I might ignore for a while to finish up a draft or whatever.

Are there cases where after a Discourse update you must refresh the page immediately and if not you experience a broken site? That’s the only reason full modal takeover makes sense imo.

1 Like

That’s not always true with Chrome (or Discourse)… it’s possible the update is a security update and you’re vulnerable until you get it.

In both cases something could be broken that would impact you until you update, but like sam mentioned, it adds a mountain of complexity to try and make that determination for each user.


Right, but as you say in practice can’t account for every possibility, and as a user I much prefer to determine when I update Chrome; I’d definitely find it a pain if I had to restart my browser immediately whenever an update hit.

I guess I’m asking if, separate from Discourse updates fixing things users may find important, the situation of having tabs open w/ different versions of the app may itself cause problems. (To me the former justifies a banner or some kind of nag, the latter justifies forcing immediately w/ the pop-up).

We could de-modal it, my concern is that if it is ignored some real pathological cases can possibly arise in exceptional circumstances.

  • Drafts could stop saving
  • After you submit a post it could go in the garbage and be lost forever
  • Read time on topics could stop tracking
  • Likes could stop registering
  • Navigation could break, so when you click on links it could just be stuck

The sky is the limit.

Really depends on the extent of tab hoarding and how long you went between server updates.

Imagine an instance updated after 4 years, for example.