For years, I have had issues with headless Pi Zero W and Zero 2W occasionally disconnecting from wifi and never reconnecting again. After cycling power and reviewing syslog, it seems the rest of the system continued to run fine. This has spanned several releases of Raspberry Pi OS and also different routers.
Finding the root cause of this issue is above my pay grade. Out of desperation, I wrote a script to check connectivity to the router and reboot the Pi if it cannot connect. Interestingly, sometimes it takes more than one reboot to "fix" the problem. Once the Pi is connected again, it may run for weeks or months before it happens again. This is a common theme on the several Pi Zero 2W I have around the house.
Below is the syslog from a recent failure. I believe I have taken most of the obvious steps like disabling wifi power management, checking for sufficient supply voltage, etc. This Pi is only a few feet from the router, so signal strength is good. OS is the current 64-bit Pi OS Lite.
If anyone has theories as to the cause or can suggest ideas for further analysis, it would be Greatly Appreciated.
Finding the root cause of this issue is above my pay grade. Out of desperation, I wrote a script to check connectivity to the router and reboot the Pi if it cannot connect. Interestingly, sometimes it takes more than one reboot to "fix" the problem. Once the Pi is connected again, it may run for weeks or months before it happens again. This is a common theme on the several Pi Zero 2W I have around the house.
Below is the syslog from a recent failure. I believe I have taken most of the obvious steps like disabling wifi power management, checking for sufficient supply voltage, etc. This Pi is only a few feet from the router, so signal strength is good. OS is the current 64-bit Pi OS Lite.
If anyone has theories as to the cause or can suggest ideas for further analysis, it would be Greatly Appreciated.
Code:
Aug 15 08:00:01 z21 CRON[19617]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)Aug 15 08:00:01 z21 CRON[19620]: (root) CMD (/home/jack/proj/netwatchdog/netwatchdog.sh)Aug 15 08:00:01 z21 root[19634]: netwatchdog trace: 1 192.168.1.1 2.510 ms 2.723 ms 2.543 ms (OK)Aug 15 08:00:01 z21 CRON[19617]: pam_unix(cron:session): session closed for user rootAug 15 08:10:01 z21 CRON[19667]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)Aug 15 08:10:01 z21 CRON[19668]: (root) CMD (/home/jack/proj/netwatchdog/netwatchdog.sh)Aug 15 08:10:01 z21 root[19689]: netwatchdog trace: 1 192.168.1.1 2.934 ms 2.581 ms 2.435 ms (OK)Aug 15 08:10:01 z21 CRON[19667]: pam_unix(cron:session): session closed for user rootAug 15 08:17:01 z21 CRON[19709]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)Aug 15 08:17:01 z21 CRON[19710]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)Aug 15 08:17:01 z21 CRON[19709]: pam_unix(cron:session): session closed for user rootAug 15 08:18:29 z21 NetworkManager[531]: <info> [1755260309.6301] dhcp4 (wlan0): state changed new lease, address=192.168.1.154Aug 15 08:20:01 z21 CRON[19730]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)Aug 15 08:20:01 z21 CRON[19732]: (root) CMD (/home/jack/proj/netwatchdog/netwatchdog.sh)Aug 15 08:20:01 z21 root[19745]: netwatchdog trace: 1 192.168.1.1 1.297 ms * * (OK)Aug 15 08:20:01 z21 CRON[19730]: pam_unix(cron:session): session closed for user rootAug 15 08:21:59 z21 kernel: rtlwifi: AP off, try to reconnect nowAug 15 08:21:59 z21 kernel: wlan0: Connection to AP <redacted> lostAug 15 08:21:59 z21 wpa_supplicant[533]: wlan0: CTRL-EVENT-DISCONNECTED bssid=<redacted> reason=4 locally_generated=1Aug 15 08:21:59 z21 NetworkManager[531]: <info> [1755260519.6635] device (wlan0): supplicant interface state: completed -> disconnectedAug 15 08:21:59 z21 NetworkManager[531]: <info> [1755260519.6638] device (p2p-dev-wlan0): supplicant management interface state: completed -> disconnectedAug 15 08:21:59 z21 wpa_supplicant[533]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLDAug 15 08:21:59 z21 NetworkManager[531]: <info> [1755260519.6900] device (wlan0): supplicant interface state: disconnected -> scanningAug 15 08:21:59 z21 wpa_supplicant[533]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=USAug 15 08:21:59 z21 NetworkManager[531]: <info> [1755260519.6902] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanningAug 15 08:22:15 z21 NetworkManager[531]: <warn> [1755260535.0152] device (wlan0): link timed out.Aug 15 08:22:15 z21 NetworkManager[531]: <info> [1755260535.0557] device (wlan0): state change: activated -> failed (reason 'ssid-not-found', sys-iface-state: 'managed')Aug 15 08:22:15 z21 NetworkManager[531]: <info> [1755260535.0733] manager: NetworkManager state is now DISCONNECTEDAug 15 08:22:15 z21 NetworkManager[531]: <warn> [1755260535.1153] device (wlan0): Activation: failed for connection '<redacted>'Aug 15 08:22:15 z21 NetworkManager[531]: <info> [1755260535.1533] device (wlan0): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')Aug 15 08:22:15 z21 NetworkManager[531]: <info> [1755260535.1543] dhcp4 (wlan0): canceled DHCP transactionAug 15 08:22:15 z21 NetworkManager[531]: <info> [1755260535.1544] dhcp4 (wlan0): activation: beginning transaction (timeout in 45 seconds)Aug 15 08:22:15 z21 NetworkManager[531]: <info> [1755260535.1544] dhcp4 (wlan0): state changed no leaseAug 15 08:22:15 z21 dbus-daemon[463]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service' requested by ':1.7' (uid=0 pid=531 comm="/usr/sbin/NetworkManager --no-daemon")Aug 15 08:22:15 z21 avahi-daemon[460]: Withdrawing address record for <redacted> on wlan0.Aug 15 08:22:15 z21 avahi-daemon[460]: Withdrawing address record for <redacted> on wlan0.Aug 15 08:22:15 z21 avahi-daemon[460]: Leaving mDNS multicast group on interface wlan0.IPv6 with address <redacted>.Aug 15 08:22:15 z21 avahi-daemon[460]: Joining mDNS multicast group on interface wlan0.IPv6 with address <redacted>.Aug 15 08:22:15 z21 avahi-daemon[460]: Registering new address record for <redacted> on wlan0.*.Aug 15 08:22:15 z21 avahi-daemon[460]: Withdrawing address record for <redacted> on wlan0.Aug 15 08:22:15 z21 avahi-daemon[460]: Leaving mDNS multicast group on interface wlan0.IPv6 with address <redacted>.Aug 15 08:22:15 z21 avahi-daemon[460]: Interface wlan0.IPv6 no longer relevant for mDNS.Aug 15 08:22:15 z21 avahi-daemon[460]: Withdrawing address record for 192.168.1.154 on wlan0.Aug 15 08:22:15 z21 avahi-daemon[460]: Leaving mDNS multicast group on interface wlan0.IPv4 with address 192.168.1.154.Aug 15 08:22:15 z21 avahi-daemon[460]: Interface wlan0.IPv4 no longer relevant for mDNS.Aug 15 08:22:15 z21 systemd[1]: Starting NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service...Aug 15 08:22:15 z21 dbus-daemon[463]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'Aug 15 08:22:15 z21 systemd[1]: Started NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service.Aug 15 08:22:15 z21 kernel: warning: `iwconfig' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.0613] policy: auto-activating connection '<redacted>' Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.0671] device (wlan0): Activation: starting connection '<redacted>' Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.0675] device (wlan0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.0689] manager: NetworkManager state is now CONNECTINGAug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.0701] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.0714] device (wlan0): Activation: (wifi) access point '<redacted>' has security, but secrets are required.Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.0715] device (wlan0): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1015] device (wlan0): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1028] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1041] device (wlan0): Activation: (wifi) connection '<redacted>' has security, and secrets exist. No new secrets needed.Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1043] Config: added 'ssid' value '<redacted>'Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1044] Config: added 'scan_ssid' value '1'Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1044] Config: added 'bgscan' value 'simple:30:-70:86400'Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1045] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK SAE FT-SAE'Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1046] Config: added 'psk' value '<hidden>'Aug 15 08:22:16 z21 wpa_supplicant[533]: wlan0: SME: Trying to authenticate with <redacted> (SSID='<redacted>' freq=2412 MHz)Aug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1382] device (wlan0): supplicant interface state: scanning -> authenticatingAug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.1383] device (p2p-dev-wlan0): supplicant management interface state: scanning -> authenticatingAug 15 08:22:16 z21 kernel: wlan0: authenticate with <redacted> (local address=<redacted>)Aug 15 08:22:16 z21 kernel: wlan0: send auth to <redacted> (try 1/3)Aug 15 08:22:16 z21 kernel: wlan0: send auth to <redacted> (try 2/3)Aug 15 08:22:16 z21 kernel: wlan0: send auth to <redacted> (try 3/3)Aug 15 08:22:16 z21 kernel: wlan0: authentication with <redacted> timed outAug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.4869] device (wlan0): supplicant interface state: authenticating -> disconnectedAug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.4870] device (p2p-dev-wlan0): supplicant management interface state: authenticating -> disconnectedAug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.9977] device (wlan0): supplicant interface state: disconnected -> scanningAug 15 08:22:16 z21 NetworkManager[531]: <info> [1755260536.9979] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanningAug 15 08:22:25 z21 systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.Aug 15 08:22:29 z21 wpa_supplicant[533]: wlan0: SME: Trying to authenticate with <redacted> (SSID='<redacted>' freq=2412 MHz)Aug 15 08:22:29 z21 NetworkManager[531]: <info> [1755260549.7306] device (wlan0): supplicant interface state: scanning -> authenticatingAug 15 08:22:29 z21 NetworkManager[531]: <info> [1755260549.7308] device (p2p-dev-wlan0): supplicant management interface state: scanning -> authenticatingAug 15 08:22:29 z21 kernel: wlan0: authenticate with <redacted> (local address=<redacted>)Aug 15 08:22:29 z21 kernel: wlan0: send auth to <redacted> (try 1/3)Aug 15 08:22:30 z21 kernel: wlan0: send auth to <redacted> (try 2/3)Aug 15 08:22:31 z21 kernel: wlan0: send auth to <redacted> (try 3/3)Aug 15 08:22:32 z21 kernel: wlan0: authentication with <redacted> timed outAug 15 08:22:32 z21 wpa_supplicant[533]: BSSID <redacted> ignore list count incremented to 2, ignoring for 10 secondsAug 15 08:22:32 z21 NetworkManager[531]: <info> [1755260552.8739] device (wlan0): supplicant interface state: authenticating -> disconnectedAug 15 08:22:32 z21 NetworkManager[531]: <info> [1755260552.8741] device (p2p-dev-wlan0): supplicant management interface state: authenticating -> disconnectedAug 15 08:22:33 z21 NetworkManager[531]: <info> [1755260553.8873] device (wlan0): supplicant interface state: disconnected -> scanningAug 15 08:22:33 z21 NetworkManager[531]: <info> [1755260553.8876] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanningAug 15 08:22:41 z21 NetworkManager[531]: <warn> [1755260561.0139] device (wlan0): Activation: (wifi) association took too long, failing activationAug 15 08:22:41 z21 NetworkManager[531]: <info> [1755260561.0140] device (wlan0): state change: config -> failed (reason 'ssid-not-found', sys-iface-state: 'managed')Aug 15 08:22:41 z21 NetworkManager[531]: <info> [1755260561.0162] manager: NetworkManager state is now DISCONNECTEDAug 15 08:22:41 z21 NetworkManager[531]: <warn> [1755260561.0185] device (wlan0): Activation: failed for connection '<redacted>'Aug 15 08:22:41 z21 NetworkManager[531]: <info> [1755260561.0204] device (wlan0): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')Aug 15 08:22:45 z21 NetworkManager[531]: <info> [1755260565.7350] device (wlan0): supplicant interface state: scanning -> inactiveAug 15 08:22:45 z21 NetworkManager[531]: <info> [1755260565.7351] device (p2p-dev-wlan0): supplicant management interface state: scanning -> inactiveAug 15 08:30:01 z21 CRON[19780]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)Aug 15 08:30:01 z21 CRON[19782]: (root) CMD (/home/jack/proj/netwatchdog/netwatchdog.sh)Aug 15 08:30:01 z21 root[19797]: netwatchdog trace: traceroute to 192.168.1.1 (192.168.1.1), 30 hops max, 60 byte packets (FAIL) ... Reboot in one minute.Aug 15 08:30:01 z21 systemd-logind[480]: The system will reboot at Fri 2025-08-15 08:31:01 EDT!Aug 15 08:30:01 z21 systemd-logind[480]: Creating /run/nologin, blocking further logins...Aug 15 08:30:01 z21 CRON[19780]: pam_unix(cron:session): session closed for user rootAug 15 08:31:01 z21 systemd-logind[480]: System is rebooting.Aug 15 08:31:01 z21 systemd-logind[480]: The system will reboot now!Statistics: Posted by JChristensen — Fri Aug 15, 2025 4:34 pm