Meta seems partially broken on old versions of iOS

I am often checking meta on my iPad IOS 10.3.2, and everything was always working fine until very recently. Now some topics now look like this (or even worse):

Safari works no better btw. Tried clearing browser cache, did not resolve issue. Desktop Chrome seems OK. Was not quite sure which category this belongs in, please move if I put it in the wrong place.

3 Likes

I can repro this using Safari on iPhone iOS 10.3.3 as well.

I think it might be related to lazy-loading. Seems to only affect topics that have images within any of the posts.

3 Likes

I can’t repro this. What topics do you see it in? I am on iPad now (use it daily to browse meta) and have not seen this.

1 Like

I’m pretty sure you have to be running an older iOS (pre-iOS 11 at least) to repro, but here are three that do not work on iOS 10.3.3 Safari:

Brand header theme component

The topic list doesn't need a category column

ProCourse Memberships 💸

3 Likes

Interesting maybe intersection observer or the polyfill is broken on older iOS versions @eviltrout?

Your fix is to update to latest iOS. Is there some reason you have not?

2 Likes

I have no reason I cannot, just reporting my findings, but others may have reason. I know older Apple hardware can get locked at an older iOS.

I guess the question is how old of a device/iOS should Discourse be expected to support.

1 Like

iOS 12 support:

  • iPhone X iPhone 6/6 Plus and later
  • iPhone SE iPhone 5S iPad Pro
  • 12.9-in., 10.5-in., 9.7-in. iPad Air and later
  • iPad, 5th generation and later
  • iPad Mini 2 and later
  • iPod Touch 6th generation

Only very old iPads would be affected. What model iPad do you have @allu

iOS 10 was released late 2016 for reference. It is almost 2019.

2 Likes

I have an iPad model A1416 (3rd generation) that will no longer update. It is stuck on iOS version 9.3.5. It is not that old.
These 3 topics indeed don’t display and it is the first time I see empty topics like this.

It’s from early 2012, so it is 7 years old :wink:

3 Likes

Well not that old indeed, my PC same price is at least twice older.
7 years is very short for this price, IMO.
But that’s off topic, sorry.

Can any of you repro this on a different discourse forum than meta?

2 Likes

It’s an iPad Air 2 (release data October 22 2014). According to Wikipedia, iOS 10.3.2 was released on May 15, 2017, so its 19 months old. Currently about 5% of my IOS users (IOS is >35% of total) are still on the 10.3 release.

As I have only seen this very recently, I am suspecting that the problem I reported may have been introduced in the recent beta6 release. I had plans to update my forum to beta6, but wanted to first understand where you stand regarding this issue. If you don’t want to fix it, I can just inform my users to update their IOS devices and hope everyone sees it. If you do intend to fix it, I can delay updating my Pad so I can confirm the fix. As this problem only seems to apply to older IOS releases, I don’t mind either way.

Edit: I just wanted to take this opportunity to say a great THANKS for all the fantastic work that you and your team have done to provide this amazing piece of software to the online world. The fact that you are still responding to posts hours before Christmas is far beyond what could reasonably be expected.

4 Likes

We’re not sure. It has to do with the Intersection Observer stuff used to determine if images are visible.

My general recommendation is to upgrade to a newer iOS, as old stuff is almost certainly vulnerable.

2 Likes

I just checked and can repro this on my QA instance, which is running v2.2.0.beta6 +84. The exact same topic does not have this problem under my v2.2.0.beta5 +158 production forum. So it very much looks like a beta6 problem. However, if I upload an image to my beta6 instance, that works fine too. It seems to make a difference under which version it was baked. Will try uploading a test image here:

Edit: removed image again, it broke the topic. Weird that this worked on my QA instance…

1 Like

I tried to find a topic with lazy loading images in the MB Discourse I use and found one.
We are in 2.2.0.beta6 as well but I don’t have the bug there, whatever I try topic, lazy loading image post or later post. They all display OK with that same Ipad that cannot display the 3 broken test topics here.

Maybe I don’t know exactly what kind of topic I should search.

In case it’s important, here on meta where my Ipad displays 3 broken topcis, I use the Dark Theme.
Over there on MetaBrainz, where the Ipad had no issues with the example topic I found and linked above, I use the MetaBrainz style, Dark (WIP) theme (which is just a small derivate of the Dark Theme).

Also FWIW, talking about exotic devices, there is no issues with these topics on my Lumia 640 phone (Windows 10 Mobile).

I believe @sam removed the line that checked if IntersectionObserver existed because we polyfill on IE. If we add that line back I think these problems would go away.

3 Likes

This is very odd… the polyfill should work unconditionally no?

https://github.com/discourse/discourse/blob/0ca61242b8be4e6645d288765891d954f42e72d2/vendor/assets/javascripts/intersection-observer.js

Can you spot anything trivially wrong with the polyfill? I can test this later on the simulator I guess.

3 Likes

My guess is that old versions of Safari are buggy here? ‘Yeah sure I can do that!’ But they can’t.

FYI, console is full of errors on iOS 8, which appears full of stuff that should not be there, we should not have require anywhere in our code, that is no good…

Possible something somewhere is leaning on some super recent feature in JS. Anyway I have a repro with browser stack and will debug this once I am on a fast enough network.

5 Likes

My bad, I thought the polyfill was only included for IE. This seems to be something different.

3 Likes