diff --git a/src/cntlr_ubus.c b/src/cntlr_ubus.c
index d8393c4ba0913151b0b37337cc6bd7f01544f75b..d63b242471c6056ab44507091a2cca50e4acd7a0 100644
--- a/src/cntlr_ubus.c
+++ b/src/cntlr_ubus.c
@@ -2049,9 +2049,9 @@ static int cntlr_bk_steer(struct ubus_context *ctx, struct ubus_object *obj,
 	}
 
 	if (tb[BK_STEER_POLICY_CHANNEL])
-		channel = blobmsg_get_u8(tb[BK_STEER_POLICY_CHANNEL]);
+		channel = (uint8_t)blobmsg_get_u32(tb[BK_STEER_POLICY_CHANNEL]);
 	if (tb[BK_STEER_POLICY_OP_CLASS])
-		op_class = blobmsg_get_u8(tb[BK_STEER_POLICY_OP_CLASS]);
+		op_class = (uint8_t)blobmsg_get_u32(tb[BK_STEER_POLICY_OP_CLASS]);
 
 	cmdu = cntlr_gen_backhaul_steer_request(c, agent, bkhaul, target_bssid,
 							op_class, channel);