diff --git a/src/agent.c b/src/agent.c
index 8c8155064951d7a32bfc0a8a2275879ddc01c92f..545638bb1a2c16b0f195b659a07aa022916f2f33 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -2737,6 +2737,7 @@ out_str:
 #ifdef EASYMESH_VENDOR_EXT
 	else if (!strcmp(event, "probe-req")) {
 		struct netif_ap *iface = get_netif_by_name(a, ifname);
+		struct netif_bk *bk_iface = NULL;
 		static const struct blobmsg_policy data_attr[2] = {
 			[0] = { .name = "macaddr", .type = BLOBMSG_TYPE_STRING },
 			[1] = { .name = "rssi", .type = BLOBMSG_TYPE_INT32 },
@@ -2746,8 +2747,12 @@ out_str:
 		char mac_str[18] = {0};
 		uint8_t mac[6] = {0};
 
-		if (iface == NULL)
-			return;
+		if (iface == NULL) {
+			bk_iface = agent_get_netif_bk_by_name(a, ifname);
+			if (bk_iface == NULL) {
+				return;
+			}
+		}
 
 		blobmsg_parse(data_attr, 2, bdata, blobmsg_data(tb[2]),
 			blobmsg_data_len(tb[2]));
@@ -2760,7 +2765,7 @@ out_str:
 
 		/* send vendor probe request to map controller */
 		cmdu = agent_gen_vendor_specific_probe_req(a,
-			mac, iface->bssid,
+			mac, iface != NULL ? iface->bssid : bk_iface->bssid,
 			rssi_to_rcpi((int32_t)blobmsg_get_u32(bdata[1])));
 		if (cmdu) {
 			agent_send_cmdu(a, cmdu);