Frequent Wi-Fi drops and "No secrets were provided" warnings

Fedora KDE 43, 6.19.9-200.fc43.x86_64, everything up-to-date, Framework Laptop 13 with Ryzen 5 7640U

My laptop just won’t have a stable connection with my new router. It manages to connect about 10% of the time, and when it does connect it has perfect speed and stability. However, after a while, it suddenly disconnects and acts as if the password is wrong even though nothing has changed. KDE’s Wi-Fi GUI gets stuck at “Configuring interface” for a while, then either silently fails or asks for the password again, and reentering it changes nothing. This issue happens specifically on this machine and on this network, but not just on Fedora; the Arch Linux installation on the same machine can’t connect properly either.

I’ve gone through pretty much everything I could find online. What I tried and didn’t work:

  • Physically moving closer to the router
  • Restarting the NetworkManager service
  • Disabling MAC address randomization with nmcli and setting cloned MAC address to permanent
  • Disabling power save in /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf and disabling ASPM and CLC in /etc/modprobe.d/mt7921e.conf
  • Saving the Wi-Fi password in plain text under /etc/NetworkManager/system-connections
  • Changing KWallet from GPG to Blowfish
  • The regulatory domain was already set to my country

journalctl log of NetworkManager when I attempt to connect:

Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.2981] device (wlp1s0): Activation: starting connection '[SSID]' ([UUID])
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.2984] audit: op="connection-activate" uuid="[UUID]" name="[SSID]" pid=2886 uid=1000 result="success"
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.2984] device (wlp1s0): state change: disconnected -> prepare (reason 'none', managed-type: 'full')
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.2986] manager: NetworkManager state is now CONNECTING
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3445] device (wlp1s0): set-hw-addr: set-cloned MAC address to [MAC-ADDR-1] (stable-ssid)
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3660] device (wlp1s0): state change: prepare -> config (reason 'none', managed-type: 'full')
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3663] device (wlp1s0): Activation: (wifi) access point '[SSID]' has security, but secrets are required.
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3664] device (wlp1s0): state change: config -> need-auth (reason 'none', managed-type: 'full')
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3666] sup-iface[[INTERFACE-ID],0,wlp1s0]: wps: type pbc start...
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3670] device (wlp1s0): supplicant interface state: inactive -> interface_disabled
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3670] device (p2p-dev-wlp1s0): supplicant management interface state: inactive -> interface_disabled
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3674] device (wlp1s0): state change: need-auth -> prepare (reason 'none', managed-type: 'full')
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3676] device (wlp1s0): state change: prepare -> config (reason 'none', managed-type: 'full')
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3677] device (wlp1s0): Activation: (wifi) connection '[SSID]' has security, and secrets exist.  No new secrets needed.
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3678] Config: added 'ssid' value '[SSID]'
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3678] Config: added 'scan_ssid' value '1'
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3678] Config: added 'bgscan' value 'simple:30:-70:86400'
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3678] Config: added 'key_mgmt' value 'SAE FT-SAE'
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3678] Config: added 'auth_alg' value 'OPEN'
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3678] Config: added 'psk' value '<hidden>'
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3678] Config: added 'ieee80211w' value '2'
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3741] device (wlp1s0): supplicant interface state: interface_disabled -> inactive
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3741] device (p2p-dev-wlp1s0): supplicant management interface state: interface_disabled -> inactive
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3839] device (wlp1s0): supplicant interface state: inactive -> scanning
Mar 26 21:21:34 [HOSTNAME] NetworkManager[1104]: <info>  [1774556494.3840] device (p2p-dev-wlp1s0): supplicant management interface state: inactive -> scanning
Mar 26 21:21:37 [HOSTNAME] NetworkManager[1104]: <info>  [1774556497.6751] device (wlp1s0): supplicant interface state: scanning -> authenticating
Mar 26 21:21:37 [HOSTNAME] NetworkManager[1104]: <info>  [1774556497.6752] device (p2p-dev-wlp1s0): profile management interface state: scanning -> authenticating
Mar 26 21:21:37 [HOSTNAME] NetworkManager[1104]: <info>  [1774556497.6992] device (wlp1s0): supplicant interface state: authenticating -> associating
Mar 26 21:21:37 [HOSTNAME] NetworkManager[1104]: <info>  [1774556497.6993] device (p2p-dev-wlp1s0): supplicant management interface state: authenticating -> associating
Mar 26 21:21:37 [HOSTNAME] NetworkManager[1104]: <info>  [1774556497.7799] device (wlp1s0): supplicant interface state: associating -> 4way_handshake
Mar 26 21:21:37 [HOSTNAME] NetworkManager[1104]: <info>  [1774556497.7799] device (p2p-dev-wlp1s0): supplicant management interface state: associating -> 4way_handshake
Mar 26 21:21:40 [HOSTNAME] NetworkManager[1104]: <info>  [1774556500.9635] device (wlp1s0): supplicant interface state: 4way_handshake -> disconnected
Mar 26 21:21:40 [HOSTNAME] NetworkManager[1104]: <info>  [1774556500.9635] device (p2p-dev-wlp1s0): supplicant management interface state: 4way_handshake -> disconnected
Mar 26 21:21:41 [HOSTNAME] NetworkManager[1104]: <info>  [1774556501.0687] device (wlp1s0): supplicant interface state: disconnected -> scanning
Mar 26 21:21:41 [HOSTNAME] NetworkManager[1104]: <info>  [1774556501.0687] device (p2p-dev-wlp1s0): supplicant management interface state: disconnected -> scanning
Mar 26 21:21:53 [HOSTNAME] NetworkManager[1104]: <info>  [1774556513.6560] device (wlp1s0): supplicant interface state: scanning -> authenticating
Mar 26 21:21:53 [HOSTNAME] NetworkManager[1104]: <info>  [1774556513.6560] device (p2p-dev-wlp1s0): supplicant management interface state: scanning -> authenticating
Mar 26 21:21:53 [HOSTNAME] NetworkManager[1104]: <info>  [1774556513.6641] device (wlp1s0): supplicant interface state: authenticating -> associating
Mar 26 21:21:53 [HOSTNAME] NetworkManager[1104]: <info>  [1774556513.6641] device (p2p-dev-wlp1s0): supplicant management interface state: authenticating -> associating
Mar 26 21:21:53 [HOSTNAME] NetworkManager[1104]: <info>  [1774556513.7366] device (wlp1s0): supplicant interface state: associating -> 4way_handshake
Mar 26 21:21:53 [HOSTNAME] NetworkManager[1104]: <info>  [1774556513.7366] device (p2p-dev-wlp1s0): supplicant management interface state: associating -> 4way_handshake
Mar 26 21:21:56 [HOSTNAME] NetworkManager[1104]: <info>  [1774556516.9308] device (wlp1s0): supplicant interface state: 4way_handshake -> disconnected
Mar 26 21:21:56 [HOSTNAME] NetworkManager[1104]: <info>  [1774556516.9309] device (p2p-dev-wlp1s0): supplicant management interface state: 4way_handshake -> disconnected
Mar 26 21:21:57 [HOSTNAME] NetworkManager[1104]: <info>  [1774556517.0360] device (wlp1s0): supplicant interface state: disconnected -> scanning
Mar 26 21:21:57 [HOSTNAME] NetworkManager[1104]: <info>  [1774556517.0360] device (p2p-dev-wlp1s0): supplicant management interface state: disconnected -> scanning
Mar 26 21:21:59 [HOSTNAME] NetworkManager[1104]: <warn>  [1774556519.9858] device (wlp1s0): Activation: (wifi) association took too long
Mar 26 21:21:59 [HOSTNAME] NetworkManager[1104]: <info>  [1774556519.9859] device (wlp1s0): state change: config -> need-auth (reason 'none', managed-type: 'full')
Mar 26 21:21:59 [HOSTNAME] NetworkManager[1104]: <warn>  [1774556519.9863] device (wlp1s0): Activation: (wifi) asking for new secrets
Mar 26 21:22:00 [HOSTNAME] NetworkManager[1104]: <info>  [1774556520.3031] device (wlp1s0): supplicant interface state: scanning -> inactive
Mar 26 21:22:00 [HOSTNAME] NetworkManager[1104]: <info>  [1774556520.3031] device (p2p-dev-wlp1s0): supplicant management interface state: scanning -> inactive
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <warn>  [1774556523.0301] device (wlp1s0): no secrets: User canceled the secrets request.
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <info>  [1774556523.0301] device (wlp1s0): state change: need-auth -> failed (reason 'no-secrets', managed-type: 'full')
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <info>  [1774556523.0304] manager: NetworkManager state is now DISCONNECTED
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <info>  [1774556523.0659] device (wlp1s0): set-hw-addr: set MAC address to [MAC-ADDR-2] (scanning)
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <warn>  [1774556523.0852] device (wlp1s0): Activation: failed for connection '[SSID]'
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <info>  [1774556523.0854] device (wlp1s0): supplicant interface state: inactive -> interface_disabled
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <info>  [1774556523.0854] device (p2p-dev-wlp1s0): supplicant management interface state: inactive -> interface_disabled
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <info>  [1774556523.0855] device (wlp1s0): state change: failed -> disconnected (reason 'none', managed-type: 'full')
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <info>  [1774556523.0950] device (wlp1s0): supplicant interface state: interface_disabled -> inactive
Mar 26 21:22:03 [HOSTNAME] NetworkManager[1104]: <info>  [1774556523.0950] device (p2p-dev-wlp1s0): supplicant management interface state: interface_disabled -> inactive

If it will be of any use, I’m also considering changing the Mediatek MT7922 Wi-Fi card that came with my Framework Laptop for something better, such as a Qualcomm QCNCM865, if a hardware fix would solve issues like this for good. I’ve had many Wi-Fi issues on this laptop, and while every time I could somehow find a software fix as a long-term solution after days of troubleshooting, I’m kind of getting sick of it.

Update: I’ve just found this topic from 5 days ago right after posting, which describes the exact same problem I’m facing. Neither of the two replies so far work for me though.

The router is using WPA3 as evidence by the

added 'key_mgmt' value 'SAE FT-SAE

Try dropping it down to WPA2 in the router - if that immediately connects and stays solid, that’s the issue.

Is WPA3, a protocol that’s been around for 8 years, known to be finicky on Linux?

My understanding is hardly better than bigger number == better security, but isn’t there a way to solve this without giving up on the security improvements of WPA3 for all devices on my network?

This is just to determine if the use of WPA3 is causing you issues - as you say it’s sporadic and sometimes works (ish… for a bit). This is how we troubleshoot - read the logs, looks for a bit of a clue, develop a hypothesis, prove it, and then come up with a cunning plan to get around it.

If we can show it’s WPA3 related we can work out which bit of which part of WPA3 is the issue. It may be it’s got nowt to do with it, but the fact that you authenticate with the correct password and fail to perform the 4 way handshake to agree on encryption keys, before one end gives up and requests the secret again indicates that it’s definitely a possibility.

Might be as simple as turning off mac randomisation or putting it into WPA3 with fallback to WPA2.

Might be as simple as updating the firmware on whatever this router is - I’m assuming that you’ve already ensured that it’s up-to-date though.

Thanks for the suggestion, you’re right about that. I just don’t know if I should leave it on WPA2 long term, but for the sake of troubleshooting I changed the router from WPA2 + WPA3 to WPA2 (those were the two options) and it works perfectly so far. When I chose “WPA/WPA2 Personal” on KDE’s settings without touching the router that didn’t work though. And yes, the router firmware is up-to-date. Here is the log when connecting:

Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0190] device (wlp1s0): set-hw-addr: set-cloned MAC address to [MAC-ADDR] (stable-ssid)
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0343] device (wlp1s0): state change: prepare -> config (reason 'none', managed-type: 'full')
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0345] device (wlp1s0): Activation: (wifi) access point '[SSID]' has security, but secrets are required.
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0345] device (wlp1s0): state change: config -> need-auth (reason 'none', managed-type: 'full')
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0346] sup-iface[[INTERFACE-ID],3,wlp1s0]: wps: type pbc start...
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0349] device (wlp1s0): supplicant interface state: disconnected -> interface_disabled
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0349] device (p2p-dev-wlp1s0): supplicant management interface state: disconnected -> interface_disabled
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0354] device (wlp1s0): state change: need-auth -> prepare (reason 'none', managed-type: 'full')
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0355] device (wlp1s0): state change: prepare -> config (reason 'none', managed-type: 'full')
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0356] device (wlp1s0): Activation: (wifi) connection '[SSID]' has security, and secrets exist.  No new secrets needed.
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0356] Config: added 'ssid' value '[SSID]'
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0356] Config: added 'scan_ssid' value '1'
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0357] Config: added 'bgscan' value 'simple:30:-70:86400'
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0357] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK SAE FT-SAE'
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0357] Config: added 'auth_alg' value 'OPEN'
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0357] Config: added 'psk' value '<hidden>'
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0436] device (wlp1s0): supplicant interface state: interface_disabled -> disconnected
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0437] device (p2p-dev-wlp1s0): supplicant management interface state: interface_disabled -> disconnected
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0845] device (wlp1s0): supplicant interface state: disconnected -> authenticating
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0845] device (p2p-dev-wlp1s0): supplicant management interface state: disconnected -> authenticating
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0915] device (wlp1s0): supplicant interface state: authenticating -> associating
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.0915] device (p2p-dev-wlp1s0): supplicant management interface state: authenticating -> associating
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.1714] device (wlp1s0): supplicant interface state: associating -> 4way_handshake
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.1714] device (p2p-dev-wlp1s0): supplicant management interface state: associating -> 4way_handshake
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.2250] device (wlp1s0): supplicant interface state: 4way_handshake -> completed
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.2250] device (wlp1s0): Activation: (wifi) Stage 2 of 5 (Device Configure) successful. Connected to wireless network "[SSID]"
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.2250] device (p2p-dev-wlp1s0): supplicant management interface state: 4way_handshake -> completed
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.2322] device (wlp1s0): state change: config -> ip-config (reason 'none', managed-type: 'full')
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.2326] dhcp4 (wlp1s0): activation: beginning transaction (timeout in 45 seconds)
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.2460] dhcp4 (wlp1s0): state changed new lease, address=[IP-ADDRESS], acd pending
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.4271] dhcp4 (wlp1s0): state changed new lease, address=[IP-ADDRESS]
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.4327] policy: set '[SSID]' (wlp1s0) as default for IPv4 routing and DNS
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.4369] device (wlp1s0): state change: ip-config -> ip-check (reason 'none', managed-type: 'full')
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.4385] device (wlp1s0): state change: ip-check -> secondaries (reason 'none', managed-type: 'full')
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.4386] device (wlp1s0): state change: secondaries -> activated (reason 'none', managed-type: 'full')
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.4389] manager: NetworkManager state is now CONNECTED_SITE
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.4442] device (wlp1s0): Activation: successful, device activated.
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.4596] audit: op="statistics" interface="wlp1s0" ifindex=2 args="2000" pid=3146 uid=1000 result="success"
Mar 27 00:06:52 [HOSTNAME] NetworkManager[6789]: <info>  [1774566412.6844] manager: NetworkManager state is now CONNECTED_GLOBAL
Mar 27 00:06:54 [HOSTNAME] NetworkManager[6789]: <info>  [1774566414.2618] dhcp6 (wlp1s0): activation: beginning transaction (timeout in 45 seconds)
Mar 27 00:06:54 [HOSTNAME] NetworkManager[6789]: <info>  [1774566414.2631] policy: set '[SSID]' (wlp1s0) as default for IPv6 routing and DNS
Mar 27 00:06:54 [HOSTNAME] NetworkManager[6789]: <info>  [1774566414.2644] dhcp6 (wlp1s0): state changed new lease

If you have the option of disabling 802.11w (PMF) then you could try placing the router back into WPA3 mode with 802.11w turned off. If that still maintains a steady connection and a reliable authentication, then you’re back on WPA3 again.

If it doesn’t help, and you’re back to it flaking out again, then it looks like WPA2 is the most stable level of authentication and encryption for you.

If you have the option to try it, kick the tyres. You know you can always drop back to WPA2 and make steady connectivity your norm. Maybe a firmware date on your mediatek chipset might sort this out, or maybe you’ll pull the trigger on a qualcomm card… but at least you have wifi that actually wifi’s as a worst case scenario.

Update next day: Switching to WPA2 worked for less than a day. Now I can’t connect despite WPA-PSK being in key-mgmt in the logs:

Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0311] device (wlp1s0): Activation: starting connection '[SSID]' ([UUID])
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0311] audit: op="connection-activate" uuid="[UUID]" name="[SSID]" pid=3146 uid=1000 result="success"
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0312] device (wlp1s0): state change: disconnected -> prepare (reason 'none', managed-type: 'full')
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0313] manager: NetworkManager state is now CONNECTING
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0680] device (wlp1s0): set-hw-addr: set-cloned MAC address to XX:XX:XX:XX:XX:XX (stable-ssid)
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0892] device (wlp1s0): state change: prepare -> config (reason 'none', managed-type: 'full')
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0894] device (wlp1s0): Activation: (wifi) access point '[SSID]' has security, but secrets are required.
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0895] device (wlp1s0): state change: config -> need-auth (reason 'none', managed-type: 'full')
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0896] sup-iface[[SUP-ID],8,wlp1s0]: wps: type pbc start...
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0898] device (wlp1s0): supplicant interface state: inactive -> interface_disabled
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0898] device (p2p-dev-wlp1s0): supplicant management interface state: inactive -> interface_disabled
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0902] device (wlp1s0): state change: need-auth -> prepare (reason 'none', managed-type: 'full')
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0903] device (wlp1s0): state change: prepare -> config (reason 'none', managed-type: 'full')
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0904] device (wlp1s0): Activation: (wifi) connection '[SSID]' has security, and secrets exist.  No new secrets needed.
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0904] Config: added 'ssid' value '[SSID]'
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0904] Config: added 'scan_ssid' value '1'
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0904] Config: added 'bgscan' value 'simple:30:-70:86400'
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0905] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK SAE FT-SAE'
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0905] Config: added 'auth_alg' value 'OPEN'
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0905] Config: added 'psk' value '<hidden>'
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0969] device (wlp1s0): supplicant interface state: interface_disabled -> inactive
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.0970] device (p2p-dev-wlp1s0): supplicant management interface state: interface_disabled -> inactive
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.1059] device (wlp1s0): supplicant interface state: inactive -> scanning
Mar 27 17:43:47 [HOSTNAME] NetworkManager[6789]: <info>  [1774629827.1060] device (p2p-dev-wlp1s0): supplicant management interface state: inactive -> scanning
Mar 27 17:43:50 [HOSTNAME] NetworkManager[6789]: <info>  [1774629830.4202] device (wlp1s0): supplicant interface state: scanning -> authenticating
Mar 27 17:43:50 [HOSTNAME] NetworkManager[6789]: <info>  [1774629830.4202] device (p2p-dev-wlp1s0): supplicant management interface state: scanning -> authenticating
Mar 27 17:43:50 [HOSTNAME] NetworkManager[6789]: <info>  [1774629830.4267] device (wlp1s0): supplicant interface state: authenticating -> associating
Mar 27 17:43:50 [HOSTNAME] NetworkManager[6789]: <info>  [1774629830.4267] device (p2p-dev-wlp1s0): supplicant management interface state: authenticating -> associating
Mar 27 17:43:50 [HOSTNAME] NetworkManager[6789]: <info>  [1774629830.5072] device (wlp1s0): supplicant interface state: associating -> 4way_handshake
Mar 27 17:43:50 [HOSTNAME] NetworkManager[6789]: <info>  [1774629830.5072] device (p2p-dev-wlp1s0): supplicant management interface state: associating -> 4way_handshake
Mar 27 17:43:53 [HOSTNAME] NetworkManager[6789]: <info>  [1774629833.6925] device (wlp1s0): supplicant interface state: 4way_handshake -> disconnected
Mar 27 17:43:53 [HOSTNAME] NetworkManager[6789]: <info>  [1774629833.6926] device (wlp1s0): Activation: (wifi) disconnected during association, asking for new key
Mar 27 17:43:53 [HOSTNAME] NetworkManager[6789]: <info>  [1774629833.6927] device (wlp1s0): state change: config -> need-auth (reason 'supplicant-disconnect', managed-type: 'full')
Mar 27 17:43:53 [HOSTNAME] NetworkManager[6789]: <info>  [1774629833.6929] device (p2p-dev-wlp1s0): supplicant management interface state: 4way_handshake -> disconnected
Mar 27 17:43:53 [HOSTNAME] NetworkManager[6789]: <info>  [1774629833.7925] device (wlp1s0): supplicant interface state: disconnected -> inactive
Mar 27 17:43:53 [HOSTNAME] NetworkManager[6789]: <info>  [1774629833.7926] device (p2p-dev-wlp1s0): supplicant management interface state: disconnected -> inactive
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9473] device (wlp1s0): state change: need-auth -> prepare (reason 'none', managed-type: 'full')
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9476] device (wlp1s0): state change: prepare -> config (reason 'none', managed-type: 'full')
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9479] device (wlp1s0): Activation: (wifi) connection '[SSID]' has security, and secrets exist.  No new secrets needed.
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9578] Config: added 'ssid' value '[SSID]'
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9579] Config: added 'scan_ssid' value '1'
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9579] Config: added 'bgscan' value 'simple:30:-70:86400'
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9579] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK SAE FT-SAE'
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9579] Config: added 'auth_alg' value 'OPEN'
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9579] Config: added 'psk' value '<hidden>'
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9668] device (wlp1s0): supplicant interface state: inactive -> scanning
Mar 27 17:44:07 [HOSTNAME] NetworkManager[6789]: <info>  [1774629847.9668] device (p2p-dev-wlp1s0): supplicant management interface state: inactive -> scanning
Mar 27 17:44:11 [HOSTNAME] NetworkManager[6789]: <info>  [1774629851.2748] device (wlp1s0): supplicant interface state: scanning -> authenticating
Mar 27 17:44:11 [HOSTNAME] NetworkManager[6789]: <info>  [1774629851.2748] device (p2p-dev-wlp1s0): supplicant management interface state: scanning -> authenticating
Mar 27 17:44:11 [HOSTNAME] NetworkManager[6789]: <info>  [1774629851.2821] device (wlp1s0): supplicant interface state: authenticating -> associating
Mar 27 17:44:11 [HOSTNAME] NetworkManager[6789]: <info>  [1774629851.2822] device (p2p-dev-wlp1s0): supplicant management interface state: authenticating -> associating
Mar 27 17:44:11 [HOSTNAME] NetworkManager[6789]: <info>  [1774629851.3651] device (wlp1s0): supplicant interface state: associating -> 4way_handshake
Mar 27 17:44:11 [HOSTNAME] NetworkManager[6789]: <info>  [1774629851.3651] device (p2p-dev-wlp1s0): supplicant management interface state: associating -> 4way_handshake
Mar 27 17:44:14 [HOSTNAME] NetworkManager[6789]: <info>  [1774629854.5448] device (wlp1s0): supplicant inte

If it worked yesterday there’s nothing that would prevent it from working today, unless you’re having some kind of sporadic hardware issue.

I’m not so certain about that; way too many things in the Linux world sometimes work and sometimes don’t. Though I just realized that my 6th generation iPad, which also has a history of Wi-Fi issues, can’t connect either, which makes the hardware compatibility issue theory stronger.

I still haven’t heard of a fix coming out, and mt7xxxx-firmware version 20260622-1.fc44 doesn’t seem to make things any better. However, as a temporary workaround, I’ve vibe coded this shell script, which repeatedly attempts to connect to a Wi-Fi network and drops the connection and retries if the connection isn’t established in three seconds. In my experience, Wi-Fi networks eventually give in and accept that your password is in fact correct, whether after one attempt or thirty attempts. Dropping it here in case it helps anyone else:

#!/bin/zsh

# Check if an SSID argument was provided
if [ -z "$1" ]; then
    echo "Error: No SSID provided."
    echo "Usage: $0 \"Your_WiFi_Name\""
    exit 1
fi

SSID="$1"

# Verify that a saved connection profile exists for this SSID
if ! nmcli connection show "$SSID" > /dev/null 2>&1; then
    echo "Error: No saved connection profile found for '$SSID'."
    echo "Run 'nmcli connection show' to see the exact names of your saved networks."
    exit 1
fi

echo "Monitoring connection for '$SSID'..."

while true; do
    # 1. Check if we are already connected to this SSID
    if nmcli -t -f ACTIVE,SSID dev wifi | grep -q "^yes:$SSID"; then
        echo "Already connected to $SSID!"
        exit 0
    fi

    echo "$(date +%H:%M:%S) - Attempting connection..."

    # 2. Try to bring the connection up with a 3-second timeout
    # If it doesn't succeed in 3 seconds, the command is killed and we loop
    timeout 3s nmcli connection up id "$SSID" > /dev/null 2>&1

    # Capture the exit status of the line above
    STATUS=$?

    if [ $STATUS -eq 0 ]; then
        echo "Connection established!"
        exit 0
    else
        # 3. The attempt failed or timed out. 
        # Now we mimic the "Disconnect" to reset the state.
        echo "Attempt failed (Status: $STATUS). Resetting interface..."
        nmcli connection down id "$SSID" > /dev/null 2>&1
    	# Brief pause to prevent high CPU usage and allow the driver to reset
        sleep 0.1
    fi
done