What’s the hold-up with iOS 12 Wi-Fi Captive Portals?

A few months ago I noticed something peculiar when I was working on a project that required the use of the captive portal on a Wi-Fi network. Whenever my iPhone X would connect to the Wi-Fi network, it would have to wait about a minute before I would see the splash page of the captive portal. However, when I would use an iPhone 8, it would immediately display the splash page as soon as the Wi-Fi connected. There was no waiting, and it was almost instant on the iPhone 8.

I found this happening wherever a captive portal was present: Hotels, Airlines, Coffee Shops, businesses … everywhere.

Artwork by @GeorgeLaw

What was different?

The difference between the two phones, other than the model, was the software version loaded on them. The iPhone X was running version 12 of the iOS and the iPhone 8 was running the last version of iOS 11 – 11.4.1.

Is it just the model of iPhone?

At first I thought it was just a fluke and the iPhone X WiFi was doing something different, so I got other Apple devices running iOS 12 to see how they would respond.

Multiple iPhones running iOS 12 behave the exact same way, regardless of model:

I turn on the Wi-Fi, tap on the wireless network I want to connect to and then have to wait about a minute before the Wi-Fi icon would appear on the toolbar at the top of the screen followed by the splash page popping up.

All of the devices that were running before iOS 12 would immediately splash the captive portal page within two seconds of associating to the Wi-Fi network.

Is it a timed thing?

At this point I wondered if it was some specific amount of time that this was occurring. On all devices we tested, the interval between when the Wi-Fi client was associated with the wireless access point and the time in which it showed connected on the top toolbar was exactly 45 seconds.

Check out a video I made showing it happening on iOS 12 and the iOS version 11 after on an airline:

Maybe there’s an answer in the packets..

The next thing I wanted to understand is if there was anything going on that was causing the iPhone using iOS 12 to hang up. Was it not responding to a request? Was there something not being ACKed? So I ran packet captures on the association of the phones and I didn’t find anything out of the ordinary.

But, why?

At this point, it looks like Apple has done something specifically to not allow a device to display a captive portal/page until after 45 seconds have elapsed since the association request by the client. I don’t understand why they have done this, I don’t understand the reason, I don’t understand why they are making clients wait to get associated. I assume that there is some answer, I just don’t know what it is.

Anyone know what’s going on?

I brought this up with another group of Wi-Fi engineers a few months ago, but it seems that everyone is just taking it for what it is. Then a couple of weeks ago, I saw a few tweets about it online, so I figured I would write up what my experience was.

Is there anybody, out there?

If you are working on this at Apple, know someone who is working on this at Apple, or has any idea what’s going on, I would love to understand. As much as we all hate captive portals, they are a part of almost every day Wi-Fi use around the world. Why would Apple insert 45 seconds of having to wait to get connected to a network?

16 thoughts on “What’s the hold-up with iOS 12 Wi-Fi Captive Portals?

Add yours

  1. Do you happen to have a VPN app installed on your iOS device? The reason I say this is because we’re seeing the same problem across our estate (we are a WiFi provider) and in most cases, this happens only when a VPN app is installed. Try uninstalling the VPN app temporarily and re-test a couple of times. Does it work? If so, it would appear to be some bug as the VPN app is somehow stopping/preventing the captive portal page popup from triggering in a timely manner.

  2. Yo I think I found a fix to this. Open safari and type captive.apple.com into the search bar and it seems to trigger the page

      1. Anyone still seeing this? Can you post specific versions (and hardware models) that are affected?
        My iOS 12.3.1 iPhone 8 isn’t, just seeking some info from a user on their iPad which hit the bug

  3. The solution is to connect, go straight to Safari and enter “captive.apple.com” in the address bar -> it will bring you to the connection splash screen

  4. What I found was that it wasn’t the splash page taking a long time to connect – it was the phone finalizing the WiFi association. I turned off the auto-login feature for that WiFi network and the WiFi associates immediately. Then I can open a Browser and hit the splash page immediately.

  5. I think this is among the most vital info for me. Andd i am
    glad reading your article. But should remark on some genmeral things, The site style
    is wonderful, the articles is really great : D.
    Good job, cheers

  6. I can say, “me too”; I am also seeing this problem on an iphone 8 w/ ios 12.3.1, and the problem has been really annoying me. The suggested fix of typing in ‘captive.apple.com’ into Safari’s address bar did not help.

  7. +1; I am seeing this problem on an iphone 8 w/ ios 12.3.1, and the problem has been really annoying me. The suggested fix of typing in ‘captive.apple.com’ into Safari’s address bar did not help.

Leave a Reply

Powered by WordPress.com.

Up ↑

%d bloggers like this: