Skip to main content

Troubleshooting Public WiFi: Fixing 'Connected, No Internet' and Splash Page Redirection Failures

This authoritative technical reference guide explains the underlying mechanics of captive portal detection and details the six primary failure modes that prevent guest WiFi from connecting. It provides IT managers and network architects with a practical troubleshooting framework to resolve HTTP redirect issues, DNS conflicts, and MAC randomisation challenges.

📖 6 min read📝 1,303 words🔧 2 worked examples3 practice questions📚 8 key definitions

Listen to this guide

View podcast transcript
Welcome to this technical briefing from Purple. Today we are tackling one of the most persistent, most misunderstood problems in enterprise wireless networking: the guest WiFi captive portal that simply refuses to load. You have been there. A guest arrives at your hotel, your retail store, your stadium, or your conference centre. They join the WiFi network. Nothing happens. No login page. No internet. Just a spinning icon and a growing sense of frustration. For venue operations directors and IT managers, that moment is not just a minor inconvenience. It represents a direct failure of your guest experience, a spike in front-of-house support calls, and a missed opportunity to capture the first-party data that justifies your wireless infrastructure investment. In this briefing, we will go under the hood. We will explain exactly how captive portal detection works at the operating system level, identify the six root causes responsible for the vast majority of connection failures, and give you a practical, actionable troubleshooting framework you can hand to your IT team today. Let us start with the mechanics. Most people think of a captive portal as simply a login page. It is actually a network-level traffic interception mechanism, and that distinction matters enormously when things go wrong. Here is the sequence. A guest's device joins your guest SSID and receives an IP address via DHCP. At that point, the operating system does not wait for the user to open a browser. In the background, a system service immediately fires off an unencrypted HTTP GET request to a vendor-controlled probe URL. Apple devices query captive.apple.com. Android devices query connectivitycheck.gstatic.com. Windows devices query msftconnecttest.com. Firefox has its own probe at detectportal.firefox.com. If the network has open internet access, these probes return their expected responses, and the operating system concludes everything is fine. But on a guest network, your wireless gateway or controller intercepts that HTTP probe before it reaches the internet. Instead of the expected response, the gateway returns an HTTP 307 redirect pointing to your captive portal splash page. The operating system detects the unexpected redirect, realises it is behind a captive portal, and opens a sandboxed browser window - often called the Captive Network Assistant - to display the login page. That is the happy path. Now let us talk about the six ways it breaks. Root cause number one: DHCP pool exhaustion. This is the silent killer at high-density events. If you are running a conference with two thousand attendees on a standard slash-24 subnet, you have 254 usable IP addresses. If your DHCP lease time is set to the default 24 hours, you will exhaust that pool within minutes of doors opening. Every subsequent connection attempt fails before the Captive Portal sequence even begins. The fix is straightforward: set guest DHCP lease times to between 15 and 30 minutes for high-turnover environments, and size your subnets appropriately for peak concurrent users, not just total headcount. Root cause number two: DNS interception failure. The Captive Portal redirect depends on the gateway intercepting the HTTP probe. But the probe requires a DNS lookup first. If your DNS configuration does not permit pre-authenticated clients to resolve external domain names, the probe never fires. Ensure your firewall policy explicitly allows DNS queries from unauthenticated clients, and verify that your DNS interception is working by running a packet capture against a test device. Root cause number three: incomplete walled garden. The walled garden - also called the pre-authentication access control list - defines which external domains unauthenticated guests can reach. If your portal splash page loads assets from a CDN that is not in the walled garden, the page renders as a blank screen. If you offer social login via Google, Apple, or Facebook, every OAuth domain those providers use must be whitelisted. And here is the critical point: social identity providers update their CDN IP ranges and authentication domains regularly. A walled garden that worked perfectly six months ago may be silently broken today. Schedule quarterly walled garden audits and use wildcard domain snooping where your hardware supports it. On Cisco Meraki, HPE Aruba, Ruckus, and Juniper Mist, this is available natively. Root cause number four: HSTS blocking the redirect. HTTP Strict Transport Security, or HSTS, is a browser security policy that forces connections to specific domains over HTTPS only. If a guest's device attempts to contact an HSTS-preloaded domain - and that includes virtually every major website - and your gateway tries to intercept that HTTPS request to redirect to the portal, the browser detects a certificate mismatch. It presents a non-bypassable security warning and blocks the redirect entirely. The correct solution is never to attempt HTTPS interception. Your gateway should only redirect the unencrypted HTTP canary probes. The long-term standards-based fix is RFC 8910, which defines DHCP Option 114. This option allows your DHCP server to directly advertise the Captive Portal URL to the client device, bypassing the need for HTTP redirection entirely. iOS 14 and Android 11 and above support this natively. Root cause number five: active VPN on the guest device. A VPN encrypts all traffic from the device and routes it through an external tunnel before it reaches your gateway. Your gateway never sees the HTTP probe. The captive portal detection sequence never triggers. The guest sees no login page and no internet. The fix for the guest is simple: disable the VPN, connect to the portal, then re-enable the VPN. For your front-of-house staff, this should be the first question they ask when a guest reports a connection problem. Root cause number six: MAC address randomisation breaking session persistence. Modern iOS and Android devices use randomised MAC addresses by default as a privacy feature. Each time a device connects to a network, it may present a different MAC address. Since captive portal session state is tracked by MAC address, a guest who authenticated an hour ago may be presented with the login page again after their device's MAC rotates. The guest-facing fix is to disable Private Address for your specific SSID in the network settings. The operator-side fix is to implement profile-based authentication - such as OpenRoaming via Passpoint and 802.1X - which authenticates at Layer 2 using credentials rather than MAC addresses, making randomisation irrelevant. Now let us talk implementation. What does a well-configured captive portal deployment actually look like in practice? Start with your DHCP architecture. For any venue expecting more than 200 concurrent devices, move away from a single slash-24 subnet. Use slash-22 or larger, and set lease times to match your venue's dwell profile. A hotel sets leases to 8 hours. A stadium sets leases to 3 hours. A shopping centre sets leases to 90 minutes. A conference centre sets leases to 30 minutes. Next, validate your walled garden before every major event. The minimum required entries are: your portal's fully qualified domain name and all associated CDN domains, the captive portal detection URLs for Apple, Google, Windows, and Firefox, and the OAuth domains for every social login provider you support. On Purple's platform, we maintain and update these walled garden entries automatically as part of our cloud-managed service, which removes the manual maintenance burden from your team. For your portal certificate, use a publicly trusted TLS certificate from a recognised certificate authority. Self-signed certificates will trigger browser warnings on every device. Renew certificates before expiry - a lapsed certificate is one of the most common causes of sudden, venue-wide portal failures. One pitfall that catches many IT teams: testing the portal from a device that has previously authenticated. Your device's session is still active, so you bypass the portal entirely and conclude everything is working. Always test from a device in a fresh, unauthenticated state - either a new device, or one where you have forgotten the network and cleared the WiFi profile. Let me give you two real-world scenarios that illustrate these principles. Scenario one: a 350-room hotel in central London. The property ran a single slash-24 subnet for guest WiFi. During a large conference, 400 delegates arrived simultaneously. Within 20 minutes, the DHCP pool was exhausted. Guests reported being connected but unable to reach the portal or the internet. The immediate fix was to extend the subnet to slash-22, giving 1,022 usable addresses, and to reduce the lease time from 24 hours to 8 hours. The longer-term fix was to implement Purple's cloud-managed captive portal, which monitors DHCP pool utilisation in real time and alerts the network team before exhaustion occurs. Portal failure rate dropped to near zero within 48 hours of the change. Scenario two: a major retail chain with 200 stores. The chain used social login via Google and Facebook on their guest portal. After Google updated its OAuth infrastructure, the new authentication domains were not in the walled garden. Guests could reach the portal page but the social login buttons produced blank screens. The chain's IT team spent two days diagnosing the issue before identifying the walled garden gap. The fix took 10 minutes once identified. The lesson: never hardcode IP addresses in your walled garden for cloud-based OAuth providers. Use wildcard domain entries and review them quarterly. Now for some rapid-fire questions we hear regularly from venue IT teams. Why does the portal work on iPhones but not on Android devices? Android uses connectivitycheck.gstatic.com as its probe URL. If that domain is blocked by your firewall or not in your walled garden, Android devices never trigger the portal. Add it explicitly. A guest says the portal loaded but they cannot get online after logging in. This is almost always a RADIUS authorisation failure. Check that your RADIUS server is reachable from the wireless controller, verify the shared secret matches on both sides, and review the RADIUS logs for Access-Reject messages. How do we handle guests who keep getting logged out after a few minutes? Check your idle timeout setting. Many controllers default to a 5-minute idle timeout, which is far too aggressive for mobile devices that sleep between interactions. Set idle timeout to at least 30 minutes for hospitality and retail environments. To summarise the key points from today's briefing. Guest WiFi captive portal failures fall into six categories: DHCP pool exhaustion, DNS interception failure, incomplete walled garden, HSTS redirect blocking, active VPN on the client device, and MAC address randomisation. Each has a specific, testable fix. For your IT team, the immediate actions are: audit your DHCP lease times and subnet sizing, validate your walled garden against the current OAuth domains of your social login providers, and test your portal from a fresh unauthenticated device after every configuration change. For your longer-term roadmap, evaluate OpenRoaming as the successor to captive portal re-authentication for returning visitors. The technology is mature, the standards are established under IEEE 802.1X and WPA3-Enterprise, and Purple makes it available at no additional software cost under the Connect plan. Purple operates across 80,000 venues and has processed 440 million logins in 2024 alone. We have seen every failure mode described in this briefing – and built the tooling to prevent them. If you want to explore how Purple's cloud overlay integrates with your existing Cisco Meraki, HPE Aruba, Ruckus, or Juniper Mist infrastructure, visit purple.ai or speak to your account manager. Thank you for listening.

Executive Summary

header_image.png

A guest connects to your WiFi, but the login page fails to load. They see a 'Connected, No Internet' warning and abandon the attempt. For venue operations directors and IT managers, this failure represents a direct breakdown of the guest experience, a spike in support tickets, and a missed opportunity to capture the first-party data that justifies the wireless infrastructure investment.

This guide explains exactly how captive portal detection works at the operating system level and identifies the six root causes responsible for the vast majority of connection failures. It provides a practical, vendor-neutral troubleshooting framework to resolve DHCP exhaustion, DNS interception failures, incomplete walled gardens, HSTS redirect blocking, active VPN conflicts, and MAC address randomisation issues.

Technical Deep-Dive: How Captive Portal Detection Actually Works

To fix a captive portal problem, you must first understand what a captive portal does at the network level. It is not simply a login page; it is a network-level traffic interception mechanism.

When a guest device joins a guest SSID, it receives an IP address via DHCP. The operating system does not wait for the user to open a browser. Instead, a background system service immediately fires an unencrypted HTTP GET request to a vendor-controlled probe URL. Apple devices query captive.apple.com. Android devices query connectivitycheck.gstatic.com. Windows devices query msftconnecttest.com. Firefox queries detectportal.firefox.com.

If the network has open internet access, these probes return their expected HTTP 200 OK responses, and the operating system concludes the connection is active. However, on a guest network, the wireless gateway or controller intercepts this HTTP probe before it reaches the internet. Instead of the expected response, the gateway returns an HTTP 307 Temporary Redirect pointing to the captive portal splash page. The operating system detects this unexpected redirect, realises it is behind a captive portal, and opens a sandboxed browser window (the Captive Network Assistant) to display the login page.

portal_architecture_diagram.png

Troubleshooting & Risk Mitigation: The 6 Root Causes of Failure

When the captive portal fails to load, the breakdown almost always occurs within one of six specific failure modes.

root_causes_infographic.png

1. DHCP Pool Exhaustion

This is the silent killer at high-density events. If you run a conference with 2,000 attendees on a standard /24 subnet, you have 254 usable IP addresses. If your DHCP lease time is set to the default 24 hours, you will exhaust that pool within minutes of doors opening. Every subsequent connection attempt fails before the captive portal sequence even begins.

The Fix: Set guest DHCP lease times to between 15 and 30 minutes for high-turnover environments. Size your subnets appropriately for peak concurrent users, not just total headcount. A /22 subnet provides 1,022 usable addresses, which is the minimum recommended size for enterprise venues.

2. DNS Interception Failure

The captive portal redirect depends on the gateway intercepting the HTTP probe. But the probe requires a DNS lookup first. If your DNS configuration does not permit pre-authenticated clients to resolve external domain names, the probe never fires.

The Fix: Ensure your firewall policy explicitly allows DNS queries (Port 53) from unauthenticated clients. Verify that your DNS interception is working by running a packet capture against a test device.

3. Incomplete Walled Garden

The walled garden (pre-authentication access control list) defines which external domains unauthenticated guests can reach. If your portal splash page loads assets from a CDN that is not in the walled garden, the page renders as a blank screen. If you offer social login via Google, Apple, or Microsoft Entra ID, every OAuth domain those providers use must be whitelisted. Social identity providers update their CDN IP ranges and authentication domains regularly; a walled garden that worked perfectly six months ago may be silently broken today.

The Fix: Schedule quarterly walled garden audits. Use wildcard domain snooping where your hardware supports it. On Cisco Meraki, HPE Aruba, Ruckus, and Juniper Mist, this is available natively. Purple maintains and updates these walled garden entries automatically as part of our cloud-managed service.

4. HSTS Redirect Blocking

HTTP Strict Transport Security (HSTS) is a browser security policy that forces connections to specific domains over HTTPS only. If a guest device attempts to contact an HSTS-preloaded domain, and your gateway tries to intercept that HTTPS request to redirect to the portal, the browser detects a certificate mismatch. It presents a non-bypassable security warning and blocks the redirect entirely. The Fix: Never attempt HTTPS interception for the initial redirect. Your gateway should only redirect the unencrypted HTTP canary probes. The long-term standards-based fix is RFC 8910, which defines DHCP Option 114. This option allows your DHCP server to directly advertise the captive portal URL to the client device, bypassing the need for HTTP redirection entirely. iOS 14 and Android 11 and above support this natively.

5. Active VPN on the Client Device

A VPN encrypts all traffic from the device and routes it through an external tunnel before it reaches your gateway. Your gateway never sees the HTTP probe, so the captive portal detection sequence never triggers. The guest sees no login page and no internet.

The Fix: The guest must disable the VPN, connect to the portal, and then re-enable the VPN. For front-of-house staff, asking if the guest is using a VPN should be the first troubleshooting step.

6. MAC Address Randomisation Breaking Session Persistence

Modern iOS and Android devices use randomised MAC addresses by default as a privacy feature. Each time a device connects to a network, it may present a different MAC address. Since captive portal session state is tracked by MAC address, a guest who authenticated an hour ago may be presented with the login page again after their device's MAC rotates.

The Fix: The guest-facing fix is to disable Private Address for your specific SSID in the network settings. The operator-side fix is to implement profile-based authentication, such as OpenRoaming via Passpoint and 802.1X, which authenticates at Layer 2 using credentials rather than MAC addresses, making randomisation irrelevant.

Implementation Guide: Building a Resilient Architecture

A well-configured captive portal deployment requires proactive architectural decisions.

  1. Validate your walled garden before every major event. The minimum required entries are: your portal's FQDN and all associated CDN domains, the captive portal detection URLs for Apple, Google, Windows, and Firefox, and the OAuth domains for every social login provider you support.
  2. Use a publicly trusted TLS certificate. Self-signed certificates will trigger browser warnings on every device. Renew certificates before expiry; a lapsed certificate is one of the most common causes of sudden, venue-wide portal failures.
  3. Test from a fresh, unauthenticated state. Testing the portal from a device that has previously authenticated will bypass the portal entirely because the session is still active. Always test from a new device, or one where you have forgotten the network and cleared the WiFi profile.
  4. Adjust idle timeouts. Many controllers default to a 5-minute idle timeout, which is far too aggressive for mobile devices that sleep between interactions. Set idle timeout to at least 30 minutes for hospitality and retail environments.

ROI & Business Impact

Captive portals are a mature technology, but they carry inherent friction. The strategic direction of travel is towards seamless, secure authentication.

OpenRoaming, built on Passpoint and 802.1X, allows returning guests to connect automatically and securely without ever seeing a login page. Purple acts as a free identity provider for OpenRoaming under our Connect plan. Venues like Premier Inn and Manchester Airports Group are already deploying this to eliminate re-authentication friction for repeat visitors while maintaining full GDPR compliance and first-party data capture. By reducing connection failures, you directly increase the volume of captured first-party data, driving loyalty and personalised engagement.

Technical Briefing Podcast

Listen to our Senior Solutions Architect break down these troubleshooting steps in our 10-minute technical briefing.

Key Definitions

Captive Portal

A network-level traffic interception mechanism that restricts internet access until a user completes a required action, such as accepting terms or providing credentials on a splash page.

The primary method for enterprise venues to secure guest access and capture first-party data.

Walled Garden

A pre-authentication access control list that defines which external IP addresses or domains an unauthenticated guest device is permitted to reach.

Crucial for allowing access to portal assets, CDNs, and OAuth identity providers before the user is fully authenticated.

Captive Network Assistant (CNA)

A sandboxed, limited-functionality browser window opened automatically by the operating system when it detects a captive portal redirect.

This is the interface where the guest actually sees and interacts with your login page.

HSTS (HTTP Strict Transport Security)

A web security policy mechanism that helps protect websites against man-in-the-middle attacks by forcing browsers to interact with them only via secure HTTPS connections.

HSTS prevents gateways from using HTTPS interception to redirect users to a captive portal, causing connection failures if configured incorrectly.

DHCP Pool Exhaustion

A state where a DHCP server has assigned all available IP addresses in its configured subnet, preventing new devices from joining the network.

A common cause of 'Connected, No Internet' errors in high-density environments like stadiums or conferences.

MAC Address Randomisation

A privacy feature in modern mobile operating systems that generates a random MAC address for each WiFi network, preventing tracking across different locations.

This feature breaks session persistence on captive portals, forcing guests to re-authenticate if their MAC address rotates.

OpenRoaming

A federation of WiFi networks that allows users to automatically and securely connect to participating networks without entering credentials or interacting with a captive portal.

The strategic successor to captive portals for repeat visitors, supported by Purple as a free identity provider.

RFC 8910 (DHCP Option 114)

A standard that allows a DHCP server to directly provide the URL of the captive portal to the client device during IP address assignment.

This bypasses the need for HTTP redirection entirely, resolving issues caused by HSTS and improving the speed of portal detection.

Worked Examples

A 350-room hotel in central London runs a single /24 subnet for guest WiFi. During a large conference, 400 delegates arrive simultaneously. Within 20 minutes, guests report being connected but unable to reach the portal or the internet.

The immediate fix is to extend the subnet to /22, giving 1,022 usable addresses, and to reduce the DHCP lease time from 24 hours to 8 hours. The longer-term fix is to implement Purple's cloud-managed captive portal, which monitors DHCP pool utilisation in real time and alerts the network team before exhaustion occurs.

Examiner's Commentary: This scenario demonstrates classic DHCP pool exhaustion. A /24 subnet only provides 254 usable IP addresses. By increasing the subnet size and reducing the lease time, the network can accommodate the high turnover of devices typical in a conference setting.

A major retail chain with 200 stores uses social login via Google and Facebook on their guest portal. After Google updates its OAuth infrastructure, guests can reach the portal page, but the social login buttons produce blank screens.

The IT team must identify the new authentication domains used by Google and add them to the walled garden (pre-authentication access control list). To prevent this in the future, they should use wildcard domain entries (e.g., *.google.com) rather than hardcoding specific IP addresses, and review the walled garden quarterly.

Examiner's Commentary: This highlights the fragility of static walled gardens when relying on third-party OAuth providers. Cloud-based identity providers frequently change their IP ranges and CDN domains. Wildcard snooping, supported natively by enterprise hardware like Cisco Meraki and HPE Aruba, is the correct architectural approach.

Practice Questions

Q1. A stadium IT director reports that during halftime, thousands of fans attempt to connect to the guest WiFi. The portal loads for some, but many report their devices are stuck on 'Obtaining IP address' or show 'Connected, No Internet' before the portal even appears. What is the most likely architectural flaw?

Hint: Consider the volume of concurrent connections versus the available resources on the network segment.

View model answer

The network is experiencing DHCP pool exhaustion. The subnet is likely sized too small (e.g., a /24) for the peak concurrent user load, and the DHCP lease time is likely set too high. The recommended approach is to increase the subnet size (e.g., to a /22 or /21) and reduce the DHCP lease time to match the expected dwell time (e.g., 3 hours for a stadium).

Q2. A guest connects to your retail WiFi network. Their device shows a security warning stating 'Your connection is not private' when attempting to load a popular website, and the captive portal never appears. What mechanism is causing this block?

Hint: Think about how modern browsers handle forced redirects on secure connections.

View model answer

HSTS (HTTP Strict Transport Security) is blocking the redirect. The guest attempted to navigate to an HSTS-preloaded domain (via HTTPS), and the wireless gateway attempted to intercept that secure connection to redirect to the portal. The browser detected the certificate mismatch and blocked the connection. The gateway must be configured to only intercept unencrypted HTTP probes.

Q3. You have recently enabled Google and Microsoft Entra ID social login options on your captive portal. Guests report that the portal page loads, but clicking the login buttons results in a timeout. The portal works perfectly when tested on the IT department's unrestricted staff network. What configuration is missing?

Hint: Consider the network state of the guest device before authentication is complete.

View model answer

The walled garden (pre-authentication access control list) is incomplete. The OAuth authentication domains and CDNs used by Google and Microsoft Entra ID have not been whitelisted. Because the guest is unauthenticated, the gateway blocks access to these external domains, causing the social login process to time out. The IT team must add wildcard entries for these identity providers to the walled garden.

Continue reading in this series

Top 10 Causes of DHCP Timeouts on High-Density Wireless Networks

This authoritative technical reference guide identifies the top ten causes of DHCP timeouts on high-density wireless networks and provides actionable, vendor-neutral remediation strategies. Designed for senior IT leaders, network architects, and venue operations directors, it covers deep-dive engineering principles, step-by-step implementation workflows, and measurable business outcomes. Learn how to eliminate connection bottlenecks and optimise your wireless infrastructure to deliver seamless connectivity in demanding enterprise environments.

Read the guide →

Top 10 Causes of DHCP Timeouts on High-Density Wireless Networks

This authoritative technical reference guide identifies the top ten causes of DHCP timeouts on high-density wireless networks and provides actionable, vendor-neutral remediation strategies. Designed for senior IT leaders, network architects, and venue operations directors, it covers deep-dive engineering principles, step-by-step implementation workflows, and measurable business outcomes. Learn how to eliminate connection bottlenecks and optimize your wireless infrastructure to deliver seamless connectivity in demanding enterprise environments.

Read the guide →

Using Packet Capture (PCAP) to Diagnose Slow WiFi Performance

This technical reference guide provides IT managers, network architects, and venue operations directors with a structured, packet-level methodology to diagnose and resolve slow enterprise WiFi performance using Packet Capture (PCAP) analysis. By dissecting raw 802.11 frames — including retransmission rates, airtime utilisation, and physical layer metadata — teams can isolate RF-layer bottlenecks from wired or application issues with precision. Applicable across high-density venues including hotels, retail chains, stadiums, and conference centres, this guide delivers actionable diagnostic workflows, real-world case studies, and configuration remediation steps to reclaim network capacity and protect guest experience.

Read the guide →