// reference · 802.11 connection failure patterns

802.11 Connection Failure: What Your PCAP Actually Shows

Every "I can't connect" complaint has a frame-level signature. A controller log tells you that something failed. A PCAP tells you why - and they're not always the same answer.

— Shankar K. · Source: IEEE 802.11-2020 + 15 years of field captures

// FAILURE PHASE MAP
PHASE WHAT PASSED WHAT FAILED
1NothingClient can't see the SSID
1B6 GHz discovery failure
2SSID visibleClient can't associate
2BAssociated onceRoaming failure (FT/802.11r)
3AssociatedSecurity handshake failed
4Security OKNo IP address (DHCP)
5IP assignedCan't reach gateway or internet

Phase 1 - SSID Not Visible

Symptom: client can't see the target network. Other devices in the same location can.

WIRESHARK FILTERS
wlan.fc.type_subtype == 8

Beacon frames. No beacons from target BSSID = AP problem, not client.

wlan.fc.type_subtype == 4 || wlan.fc.type_subtype == 5

Probe Requests (4) and Probe Responses (5). Requests with no Response = band or capability mismatch.

BAND MISMATCH

Client probes 2.4 GHz channels 1–11. AP beacons only appear on 5/6 GHz. No Probe Response ever received. Check the client's Probe Request → HE Capabilities IE - absent means the client cannot join a 6 GHz-only SSID.

BEACON INTERVAL ANOMALY

IO graph the beacon inter-arrival time. Normal = 100 TUs (~102.4 ms). Gaps of 500 ms+ or irregular spacing = AP radio struggling. Missing 3–7 consecutive beacons → client stops scanning and reports "network not found."

HIDDEN SSID

Beacons present but SSID field is empty. Client sends directed Probe Requests with saved SSID string - if no Probe Response comes back, the saved name doesn't match exactly. Hidden SSIDs are case-sensitive. Check: wlan_mgt.ssid in the Beacon.

Phase 1B - 6 GHz Discovery Failure

Symptom: tri-band AP broadcasting on 6 GHz but certain clients stay on 5 GHz. No error - a completely silent miss.

In 2.4/5 GHz, clients actively probe every channel. In 6 GHz, unsolicited active scanning is prohibited. Clients discover 6 GHz via: RNR (Reduced Neighbor Report IE in 2.4/5 GHz beacons), FILS Discovery frames, or PSC channels (preferred scanning channels).

RNR MISSING FROM 5 GHz BEACON

Filter: wlan_mgt.tag.number == 201 on 5 GHz Beacons. Tag 201 = Reduced Neighbor Report. If absent - clients relying on out-of-band discovery never know the 6 GHz radio exists. If present, verify the Operating Class and Channel Number match your actual 6 GHz channel.

AP ON NON-PSC CHANNEL

PSC channels: 5, 21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, 229. If the AP is on a non-PSC channel (e.g., channel 49) and RNR is disabled - clients that only scan PSC channels will never find the AP. Completely silent in the capture.

WPA3 MANDATORY - WPA2-ONLY CLIENT EXCLUDED

6 GHz mandates WPA3 (SAE or OWE). A WPA2-only client either never sends an Auth Request after reading the Beacon's RSN IE, or gets Status Code 23/24. Filter: wlan_mgt.rsn.akms.type == 8 confirms the AP is advertising SAE-only.

Phase 2 - Association Failure

Symptom: client sees SSID, sends Association Request, gets rejected or no response.

WIRESHARK FILTERS
wlan.fc.type_subtype == 0 || wlan.fc.type_subtype == 1

Assoc Request (0) and Response (1). Request with no Response = AP silently dropping. Response present = check Status Code.

wlan_mgt.fixed.status_code != 0

Any non-zero status code = rejected. See Status & Reason Codes for full lookup.

AKM SUITE OUI REFERENCE
00-0F-AC:2WPA2-PSK
00-0F-AC:3FT over 802.1X
00-0F-AC:4FT-PSK
00-0F-AC:6PSK-SHA256
00-0F-AC:8SAE (WPA3-Personal)
00-0F-AC:11OWE (Enhanced Open)
00-0F-AC:18SAE-EXT-KEY (WPA3 R3)
STATUS 17 - AP AT CLIENT CAPACITY

Valid Assoc Request → Response with Status Code 17. RSN IE negotiation never happens. AP hit its max-association limit - a capacity planning failure, not a client issue.

STATUS 23 - CIPHER SUITE REJECTED

Client proposed a cipher the AP won't accept. Open Assoc Request → RSN Information → Pairwise Cipher Suite List. Compare to AP Beacon RSN IE. OUIs must overlap. Classic WPA3 migration failure.

PMF MISMATCH - SILENT REJECTION

AP has PMF Required (MFPR bit set). Client Assoc Request has MFPC=0, MFPR=0. AP rejects silently or with Status Code 31. Filter: wlan_mgt.rsn.capabilities.mfpr == 1 on Beacons to confirm. Most common WPA3 migration failure for legacy IoT devices.

BAND STEERING - LOOKS LIKE FAILURE BUT ISN'T

AP sends BSS Transition Management Request (WNM Action frame) immediately after a successful association to redirect the client to 5 GHz. Filter: wlan.fc.type_subtype == 13 - look for Category 10, Action 7. If client ignores it, the AP may deauth to force the move.

Phase 2B - Roaming Failure (802.11r Fast Transition)

Symptom: initial connection works. Client fails to roam, or roams but takes 3–5+ seconds. Controller dashboard may show "roam successful."

SUCCESSFUL FT ROAM = 4 FRAMES

Auth Request (with FT IE) → Auth Response (with FT IE) → Reassoc Request → Reassoc Response (Status 0). No EAPOL 4-way handshake - PTK derived in the Auth exchange. Non-FT with PMKID caching = 8 frames. Full re-auth = 8+ frames including complete EAP exchange.

★ STATUS 53 - INVALID PMKID (MOST MISDIAGNOSED ROAMING FAILURE)

Controller log: "roam successful." PCAP: Reassoc Response with Status Code 53, followed by full re-auth from scratch. The controller counts the eventual re-auth. The user lost 500–2000 ms of connectivity in between. These are not the same roam.

wlan_mgt.fixed.status_code == 53
CLIENT NOT SENDING MOBILITY DOMAIN IE

802.11r enabled on AP but client Assoc Request doesn't include MDIE (Tag 54) - client doesn't support FT. Filter: wlan_mgt.tag.number == 54. Absent = not attempting FT regardless of AP config.

INTEL NIC SENDING TWO PMKIDs - DEAUTH ON ROAM

Known issue with Intel AX200/AX210 on Windows: client sends two PMKIDs in Reassoc Request RSN IE during PMK cache operations. Some AP firmware deauths with EAPOL Invalid MIC. Filter: wlan_mgt.rsn.pmkid.count > 1

Phase 3 - Security Handshake Failure

Symptom: association succeeds (Status Code 0) but client disconnects within seconds - Reason Code 15 or 23.

WIRESHARK FILTERS
eapol

All EAPOL frames. Successful WPA2/WPA3-Personal = 4 messages (M1→M4). Enterprise adds EAP exchange first.

eap.code == 4

EAP-Failure frame. Find this and work backwards through the EAP exchange.

wlan.fc.retry == 1 && eapol

EAPOL frames with Retry bit set = AP retransmitting handshake messages (M3 retry storm).

REASON 15 - 4-WAY HANDSHAKE TIMEOUT (WRONG PSK)

Assoc success → EAPOL M1 → M2 → M3 → no M4 → Deauth Reason 15. The wrong passphrase is invisible in the frames. Count EAPOL messages between association and deauth: 3 = wrong PSK. 4 = success.

REASON 23 - EAP AUTHENTICATION FAILED (802.1X)
After Identity ResponseRADIUS rejected the username
During TLS tunnel setupExpired or untrusted certificate
After inner auth (MSCHAPv2)Wrong password
No EAP exchange at allRADIUS server unreachable
RSN IE MISMATCH - BEACON vs EAPOL M3

RSN IE in Beacon must match RSN IE in EAPOL M3. A mismatch causes wpa_supplicant to abort the handshake. This is what an evil twin attack looks like in a PCAP - a rogue AP can't reliably reproduce the RSN IE across Probe Responses and handshake frames. WiFi Analyser checks this automatically.

See Status & Reason Codes for the complete reason code reference with field notes.

Phase 4 - DHCP / IP Layer Failure

Symptom: associated, handshake complete, but client shows 169.254.x.x (APIPA) or no IP.

WIRESHARK FILTERS
bootp

All DHCP traffic. Healthy = DORA (Discover, Offer, Request, Acknowledge). Missing frames show where the chain breaks.

bootp.option.type == 53 && bootp.option.value == 01

DHCP Discover only. Repeated Discovers with no Offer = DHCP server unreachable.

DISCOVER WITH NO OFFER - VLAN / RELAY ISSUE

3–4 Discover retransmissions with exponential backoff (2s, 4s, 8s, 16s), then a 169.254 ARP probe. DHCP Discover never reached the server. Check VLAN trunking and ip helper-address.

OFFER RECEIVED, NO ACK - POOL EXHAUSTED

Discover → Offer → Request → silence. Pool ran out between Offer and ACK. Cross-reference DHCP server logs with PCAP timestamps.

IOT: DEAUTH WHILE IN PS → FRESH DHCP ON WAKE

IoT devices kicked with Reason Code 4 (inactivity timeout) must restart the full connection including DHCP when they wake. Appears as a "failure" in monitoring but is actually an idle-timeout configuration decision. Check AP idle-timeout vs device sleep interval.

Phase 5 - Gateway / DNS / Internet Failure

Symptom: client has a valid IP, shows "connected," but can't reach resources.

WIRESHARK FILTERS
icmp

ICMP Echo Requests to default gateway. No reply = routing issue or client isolation.

dns

DNS queries and responses. No response = unreachable or port 53 blocked. SERVFAIL = broken upstream.

ICMP TO GATEWAY, NO REPLY - CLIENT ISOLATION

AP client isolation (peer-to-peer blocking) can block client-to-gateway traffic if both are on the same VLAN. Gateway reachable from wired side, blocked by AP policy. Check AP peer-blocking setting.

DNS QUERIES UNANSWERED - WRONG DNS IN DHCP

Open DHCP Acknowledge → Option 6 (DNS Server). Wrong IP = every query times out. 3 retransmissions per query with no responses confirms server is unreachable. Fix is on the DHCP server, not the client.

HTTP REDIRECT - CAPTIVE PORTAL

HTTP requests return 302 Redirect to portal IP. HTTPS destinations fail silently - TLS can't be intercepted. Force http://neverssl.com to trigger the portal page and confirm.

IoT Device PCAP Patterns

IoT devices fail differently - no UI, no visible error, distinctive frame signatures.

REASON 7 - CLASS 3 FRAME FROM NON-ASSOCIATED STA

Device woke from deep sleep, still has old session state in memory, sends data frames before re-associating. AP deauths immediately. In the capture: data frames from IoT transmitter address appear before any Association Request.

REASON 16 - GTK ROTATION FAILURE

AP tries to rotate the Group Temporal Key while device is in deep sleep. No response → Reason 16 Deauth. When device wakes, all broadcast traffic (including DHCP) is broken until full re-association. In the capture: EAPOL Group Key frame (AP → client), no response, Reason 16 follows.

PROBE REQUEST STORM

IoT device that lost its AP floods Probe Requests - can be hundreds per second. Creates measurable interference and may trigger AP rate-limiting.

wlan.ta == aa:bb:cc:dd:ee:ff && wlan.fc.type_subtype == 4

More than 10 Probe Requests per second = scan storm.

Quick Reference

FAILURE WHAT'S MISSING OR WRONG
No SSID visibleNo Probe Response from AP
6 GHz not foundNo RNR IE in 5 GHz Beacon, or non-PSC channel
Association rejectedStatus Code ≠ 0 in Assoc Response
Band steering loopBSS Transition Action frame after Assoc success
Wrong PSKEAPOL M4 missing → Deauth Reason 15
802.1X failedEAP-Failure (code 4) present
FT roam rejectedStatus Code 53 in Reassoc Response
No IP (DHCP)No DHCP Offer → APIPA ARP probe
IoT idle kickedDeauth Reason 4 while in PS mode
No gateway replyICMP Echo Request with no Reply
DNS brokenDNS Query with no response
// WIRESHARK SETUP - MONITOR MODE REQUIRED

Managed-mode only captures data frames - you'll miss the entire auth/association sequence. You must be in monitor mode.

  • macOS: airport utility to set monitor mode before launching Wireshark
  • Windows: npcap 1.30+ required - most built-in adapters don't support monitor mode
  • Linux: airmon-ng start <interface>
  • Best option: WLAN Pi R4 - over-the-air capture without losing your own connection
  • 6 GHz: requires 6 GHz-capable adapter (e.g., NetGear A9000 / mt7925u chipset)
WiFi Analyser decodes these automatically

Upload a PCAP and every deauth reason code, status code, RSN IE mismatch, and EAPOL failure is flagged, explained, and linked to the relevant client session.

try it free ↗

— Shankar K., Wi-Fi engineer, Irving TX
Building WiFi Analyser V2 · CWNA-109 in progress · one post every two weeks

Preparing for a Wi-Fi interview? - 71 questions, spoken engineer answers, free PDF.

Request the guide →
// leave a comment
// share this page
← previous
next →
SK
Shankar K., Wi-Fi engineer, Irving TX
Building WiFi Analyser V2 · CWNA-109 in progress · one post every two weeks