Stuck in Hotel Wi-Fi Captive Portal Loop? Here's the Fix

Captive portal loop happens when your device can't fully load the login page. The fix: force a redirect by visiting a plain HTTP site or disabling captive portal detection.

Quick Answer

Open Safari (or any browser) and visit http://neverssl.com. If that doesn't work, turn off Private Wi-Fi Address (iOS) or Random MAC (Android), then reconnect.

Why the Loop Happens

Hotel Wi-Fi uses a captive portal — that login page that pops up when you connect. The problem is that modern devices try to detect the portal by sending HTTPS requests to a known server (like Apple's captive.apple.com or Google's connectivitycheck.gstatic.com). If that HTTPS request succeeds (maybe because of cached data or a flaky redirect), your device thinks it’s online and won’t show the login page. But you’re not actually online — hence the loop.

I saw this last week at a Marriott in Chicago. Guest’s iPhone kept saying “Connected without internet,” and the portal never popped. They’d been stuck for 20 minutes. Took me 30 seconds to fix.

Fix Steps (Works on Most Devices)

  1. Open your browser and manually type http://neverssl.com — note the http://, not https://. This forces the captive portal to intercept the request and show the login page.
  2. If that doesn’t load, try http://gstatic.com/generate_204 or http://1.1.1.1. These plain HTTP sites are almost never cached.
  3. Still stuck? Forget the network, turn off Wi-Fi, then reconnect. On the login page, make sure you’re not using a VPN or ad blocker — those can block the portal’s DNS redirect.
  4. On iOS (iPhone/iPad): Go to Settings > Wi-Fi, tap the (i) next to the network, toggle off Private Wi-Fi Address. Then reconnect. Hotels hate randomized MACs — it messes with their session tracking.
  5. On Android: Same deal — long-press the network, tap Modify Network, check Advanced options, set MAC type to Device MAC (not random).
  6. On Windows: Open Command Prompt as admin, type ipconfig /flushdns, then netsh winsock reset. Reboot. Then try step 1 again.
  7. On Mac: Go to System Settings > Network > Wi-Fi > Details, turn off Private Wi-Fi Address, and click Renew DHCP Lease.

Alternative Fixes (When Main One Fails)

  • Use a different device — sometimes the portal is tied to a specific MAC. My Android phone worked when my laptop wouldn’t.
  • Open the portal URL directly — look at another connected device’s browser address bar and copy the captive portal URL (often something like 10.0.0.1/login). Paste it into your device.
  • Disable captive portal detection (advanced): On Android, go to Settings > Developer Options (tap Build Number 7 times to unlock), then set Captive portal detection to 0 or 1 (depends on your version). This forces the portal to show every time you connect. On Windows, disable the Network Location Awareness service temporarily (not recommended long-term).
  • Reboot the router — if you’re the admin (like in a small hotel), physically unplug the router for 10 seconds. I’ve fixed entire lobbies with this.

Prevention Tips for Next Time

  • Bookmark http://neverssl.com on every device you travel with. It’s the most reliable portal trigger I’ve seen.
  • Turn off Private Wi-Fi Address / Random MAC before connecting to hotel networks. Turn it back on when you leave if you want privacy.
  • Disable VPN and ad blockers before attempting to connect. You can re-enable them after the login page loads.
  • If you travel often, consider a travel router like the GL.iNet GL-AR750. It handles the captive portal once, then shares the connection to all your devices — no more loops.

Most captive portal loops are caused by devices trying to be smart about HTTPS and randomized MACs. Strip that away, force a plain HTTP request, and you’re in. Took me years to learn what takes you five minutes. Don’t overthink it.

Related Errors in Network & Connectivity
0XC00A0034 RDP Error 0XC00A0034: License In Use – Real Fix 0x8009030E / 0x80090311 RDP NLA Error: How to Fix Network Level Authentication Fast 0XC023002E Fix STATUS_NDIS_INVALID_PORT_STATE 0xC023002E Error 0XC026251A 0XC026251A: Cannot call IOPMVideoOutput during session type change

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.