diff --git a/src/agent.c b/src/agent.c
index d84322ccaf8170f2b814c593b2cb12928cf0d94f..69dc901f26a9e4fc434ade99b25a4cb7445bb29d 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -2165,6 +2165,17 @@ static void wifi_chan_change_event_handler(void *c, struct blob_attr *msg)
 		freq = blobmsg_get_u32(data[0]);
 		bw = blobmsg_get_u32(data[1]);
 		chan = f2c(freq);
+	} else {
+		return;
+	}
+
+	if (!chan || !bw) {
+		struct wifi_radio_status radio_status = {};
+
+		if (!wifi_radio_status(radio->name, &radio_status)) {
+			chan = radio_status.channel;
+			bw = radio_status.bandwidth;
+		}
 	}
 
 	if (!chan || !bw)