Troubleshooting
Mac Won't Connect to Wi-Fi? Here's the Fix Sequence
Mac refusing to connect to Wi-Fi? Work through the fix sequence — DHCP, DNS, network locations, and a clean SystemConfiguration reset.
Your MacBook sees the Wi-Fi network, you click it, you type the password, and it spins forever before failing with “Connection failed.” Every other device in the house is online. The router isn’t the problem.
This guide takes you through the fix sequence in the order I’d actually try, on a real Mac running macOS Sonoma or Sequoia. Skip the steps that don’t apply.
Step 1: Confirm the password
This sounds insulting, but: did the password change? Routers occasionally rotate keys after firmware updates, and saved Macs don’t auto-pick that up. Check the password from another device that’s currently connected: System Settings → Wi-Fi → Details → Show Password (auth required) on macOS, or Settings → Wi-Fi → tap network → Password on iOS.
If the password changed:
- System Settings → Wi-Fi → Details next to the network → Forget This Network.
- Reconnect from the Wi-Fi menu.
- Enter the new password.
Step 2: Toggle Wi-Fi off and on
Click the Wi-Fi icon in the menu bar → toggle it off, wait five seconds, toggle it on. This re-initializes the radio. Maybe a third of failed-connect cases clear here.
If toggling does nothing — the Mac fails to scan for networks even though Wi-Fi shows on — restart the system. Software state corruption around wifid or airportd won’t clear without a reboot.
Step 3: Check for an IP conflict
If you connect, the Wi-Fi icon shows full bars, but Safari can’t reach anything, your Mac may have grabbed an IP that’s already in use elsewhere on the network. Check:
System Settings → Network → Wi-Fi → Details → TCP/IP. If the IP starts with 169.254, the Mac never got a real DHCP lease; it self-assigned a link-local address. That means the router refused to give out an IP, usually because the lease pool is exhausted or the router’s DHCP service crashed.
Fix:
- Reboot the router.
- Click “Renew DHCP Lease” in the same TCP/IP panel.
- If you keep getting 169.254 addresses, log into the router and either expand the DHCP range or restart the DHCP service.
Step 4: Reset the SystemConfiguration cache
If forgetting the network and rebooting both fail, the cached state needs a manual cleanup.
- Turn Wi-Fi off.
- Finder → Go → Go to Folder →
/Library/Preferences/SystemConfiguration/. - Move to the desktop:
com.apple.airport.preferences.plistcom.apple.network.identification.plistcom.apple.wifi.message-tracer.plistNetworkInterfaces.plistpreferences.plist
- Restart.
- Turn Wi-Fi back on, rejoin your network.
This is the closest equivalent macOS has to “reset network settings” on iOS.
Step 5: Use networksetup from Terminal
Apple’s networksetup command can do things the GUI can’t. Open Terminal:
List your hardware ports to find the Wi-Fi interface name:
networksetup -listallhardwareports
Usually it’s en0 on Apple Silicon, sometimes en1 on Intel Macs. From there:
sudo networksetup -setairportpower en0 off
sudo networksetup -setairportpower en0 on
Then explicitly join a network:
networksetup -setairportnetwork en0 "MyNetworkName" "password"
If the GUI fails but networksetup connects, the issue is in the menu bar UI, not the radio.
Step 6: Create a new network location
This is the easiest way to bypass every cached setting tied to your current network profile.
- System Settings → Network → three-dot menu → Locations → Edit Locations.
- Click + → name it “FreshStart” → Done.
- Apple menu → Location → FreshStart.
- Connect to Wi-Fi.
If FreshStart works and Automatic doesn’t, your Automatic location has corruption somewhere — most likely a leftover service from a VPN, ethernet adapter, or ISP setup tool. You can keep using FreshStart, or delete Automatic from Locations and recreate it.
Step 7: Hidden network or captive portal
If you’re trying to connect to a Wi-Fi network that doesn’t broadcast its SSID:
System Settings → Wi-Fi → Other Networks → Other… → enter SSID, security type (usually WPA2/WPA3 Personal), and password.
If it’s a captive portal (hotel, airport, coffee shop) and the login page never loads:
open http://captive.apple.com
This forces macOS to try the captive portal detection URL. The login page should pop up.
You can also disable Apple’s auto-detect to force Safari to handle it:
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.captive.control Active -bool false
(Re-enable with -bool true.)
Step 8: WPA3 / WPA2 mismatch
Modern routers default to “WPA2/WPA3 Mixed” or “WPA3 Only.” Older Macs (Intel, pre-2018) sometimes can’t handle WPA3 reliably. If you’re on an older Intel Mac:
- Log into your router.
- Switch the security mode to “WPA2 Personal” only.
- Try to connect again.
Apple Silicon Macs handle WPA3 fine on Sonoma and Sequoia, but a hybrid network with mismatched settings between bands can confuse them.
Step 9: 6 GHz / Wi-Fi 6E gotcha
If your router broadcasts 6 GHz (Wi-Fi 6E) and your Mac is from 2022 or earlier, the Mac literally can’t see that band. M2 MacBook Air, M2 Pro/Max MacBook Pro, and newer Macs support 6 GHz; M1 and Intel do not.
If your network is named the same on all three bands and you’re connecting fine on iPhone but not on an M1 Mac, log into the router and confirm the 2.4 GHz and 5 GHz bands are still broadcasting.
Step 10: Try a different DNS
Sometimes the connection is fine but DNS is broken, and macOS reports it as “Connection failed.”
System Settings → Network → Wi-Fi → Details → DNS. Add 1.1.1.1 and 8.8.8.8. Drag them above any router-provided entries. Apply.
If pages now load, your router’s DNS was broken or your ISP’s DNS was throttled.
Step 11: VPN or proxy interference
Old VPN clients install a system extension that intercepts all network traffic. If the extension is loaded but the parent app crashed or was deleted, every connection attempt goes through a dead intercepter.
systemextensionsctl list
If you see extensions from VPNs you’ve already removed, the system is in a broken state. Removing them properly requires:
systemextensionsctl uninstall <team-id> <bundle-id>
This is exactly what Sweep automates: when you uninstall an app through Sweep, it removes the system extension, the configuration profile, the keychain entry, and the launch agents at the same time. Drag-to-trash leaves all of that behind.
Step 12: Safe Mode test
Boot in Safe Mode:
- Apple Silicon: Shut down → hold power button → “Loading startup options” → select your disk while holding Shift → “Continue in Safe Mode.”
- Intel: Shut down → press power → immediately hold Shift → release at the login window.
In Safe Mode, login items, third-party kernel extensions, and most caches are skipped. If Wi-Fi connects fine in Safe Mode, something installed on your Mac is breaking it. Most likely culprit: a VPN extension or a corporate device management agent.
Step 13: Hardware test
Apple Diagnostics:
- Apple Silicon: Shut down → hold power button → release at startup options → press Cmd+D.
- Intel: Shut down → press power → immediately hold D.
If Apple Diagnostics returns code NDC001, NDC003, NDC005, or NDC006, that’s a Wi-Fi hardware fault. Take it to Apple.
Step 14: Reinstall macOS without erasing
This is a last resort. macOS Recovery → Reinstall macOS. Choose the option that doesn’t erase data. It rebuilds system files without touching your user data.
Most “Mac won’t connect to Wi-Fi” cases are fixed in steps 1-6. If you got past step 10 without resolution, you’re either dealing with a hardware issue, a corrupt firmware on the router, or a really stubborn corruption that a SystemConfiguration reset didn’t catch. At that point, the FreshStart location combined with a careful uninstall of any VPNs you’ve ever had installed is usually what closes the door.