So this is what i get after toggling off the wifi switch on the UI Lots of with different XYZ signal sender=:1.8 -> dest=(null destination) serial=87524 path=/org/freedesktop/NetworkManager/Devices/4; interface=org.freedesktop.NetworkManager.Device.Wireless; member=AccessPointRemoved object path "/org/freedesktop/NetworkManager/AccessPoint/XYZ" signal sender=:1.8 -> dest=(null destination) serial=87550 path=/org/freedesktop/NetworkManager/Devices/4; interface=org.freedesktop.NetworkManager.Device; member=StateChanged uint32 10 uint32 100 uint32 36 signal sender=:1.8 -> dest=(null destination) serial=87611 path=/org/freedesktop/NetworkManager; interface=org.freedesktop.NetworkManager; member=DeviceRemoved object path "/org/freedesktop/NetworkManager/Devices/4" signal sender=:1.8 -> dest=(null destination) serial=87617 path=/org/freedesktop/NetworkManager/ActiveConnection/2; interface=org.freedesktop.NetworkManager.Connection.Active; member=PropertiesChanged array [ dict entry( string "Default" variant boolean false ) dict entry( string "State" variant uint32 4 ) dict entry( string "Devices" variant array [ ] ) ] signal sender=:1.8 -> dest=(null destination) serial=87618 path=/org/freedesktop/NetworkManager; interface=org.freedesktop.NetworkManager; member=PropertiesChanged array [ dict entry( string "PrimaryConnection" variant object path "/" ) dict entry( string "WirelessEnabled" variant boolean true ) dict entry( string "PrimaryConnectionType" variant string "" ) dict entry( string "ActiveConnections" variant array [ object path "/org/freedesktop/NetworkManager/ActiveConnection/2" ] ) ] signal sender=:1.8 -> dest=(null destination) serial=87619 path=/org/freedesktop/NetworkManager; interface=org.freedesktop.NetworkManager; member=PropertiesChanged array [ dict entry( string "ActiveConnections" variant array [ ] ) ] signal sender=:1.8 -> dest=(null destination) serial=87628 path=/org/freedesktop/NetworkManager; interface=org.freedesktop.NetworkManager; member=PropertiesChanged array [ dict entry( string "WirelessEnabled" variant boolean false ) ] and this is what i get after calling nmcli nm on a different terminal signal sender=:1.8 -> dest=(null destination) serial=87631 path=/org/freedesktop/NetworkManager; interface=org.freedesktop.NetworkManager; member=StateChanged uint32 20 signal sender=:1.8 -> dest=(null destination) serial=87633 path=/org/freedesktop/NetworkManager; interface=org.freedesktop.NetworkManager; member=PropertiesChanged array [ dict entry( string "State" variant uint32 20 ) ] So it really seems something in networkmanager is forgetting to send the StateChanged for org.freedesktop.NetworkManager until poked