This problem started re-occurring for me. I figured out how to fix it this evening.
Per the recommendation on the Arch Framework wiki (WiFi Performance on AMD Edition), I switched NetworkManager to use iwd as the back-end. It was pretty trivial to do.
- pamac install iwd
- Create /etc/NetworkManager/conf.d/wifi_backend.conf with the following:
[device]
wifi.backend=iwd
wifi.iwd.autoconnect=yes
[main]
iwd-config-path=auto
- Remove existing NetworkManager profiles by deleting *.nmconnection in system-connections directory (You’ll need to re-create them in NM after you restart)
- Reboot, then reconnect to your network to re-create the profile under iwd.
My instructions may be imperfect and your mileage may vary. Follow the directions on the arch wiki.
My wifi now comes up instantly and connects to the local network.