diff --git a/VERSION b/VERSION
index 7721732..1529b51 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.6.20
+4.6.21
diff --git a/go.mod b/go.mod
index a4f1bd2..09fb47f 100644
--- a/go.mod
+++ b/go.mod
@@ -8,7 +8,7 @@
 	github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
 	github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
 	github.com/opencord/voltha-lib-go/v7 v7.8.1
-	github.com/opencord/voltha-protos/v5 v5.7.1
+	github.com/opencord/voltha-protos/v5 v5.7.2
 	github.com/prometheus/client_golang v1.23.2
 	github.com/stretchr/testify v1.11.1
 	go.etcd.io/etcd/tests/v3 v3.6.5
diff --git a/go.sum b/go.sum
index 7a976b4..809b04c 100644
--- a/go.sum
+++ b/go.sum
@@ -160,8 +160,8 @@
 github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
 github.com/opencord/voltha-lib-go/v7 v7.8.1 h1:tScnUJAtKo2bu6dg2NFirawIrXf2YwKjlb8+YdCDp2s=
 github.com/opencord/voltha-lib-go/v7 v7.8.1/go.mod h1:ege+7IIFRKe89exRbV6B9+N0J9pCJY8tCw1Ex/ryBQM=
-github.com/opencord/voltha-protos/v5 v5.7.1 h1:2K3s5nNn/EI6MJPgN1AK2db5RZCMisvK4SXqlOba5xA=
-github.com/opencord/voltha-protos/v5 v5.7.1/go.mod h1:KxcAB17mXTUSjA/rAziV3sDaOpntaFTCEXBJIfN5El4=
+github.com/opencord/voltha-protos/v5 v5.7.2 h1:7qWmJV8sz7UnJ5Y/kBbg9Zv502mdajqQOLNGVSume1o=
+github.com/opencord/voltha-protos/v5 v5.7.2/go.mod h1:KxcAB17mXTUSjA/rAziV3sDaOpntaFTCEXBJIfN5El4=
 github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
 github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
 github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index 05e85ff..b5ca83b 100755
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -1579,7 +1579,7 @@
 
 		onuDevice, err := dh.getChildDeviceFromCore(ctx, &ca.ChildDeviceFilter{
 			ParentId:     dh.device.Id,
-			OnuId:        omciInd.OnuId,
+			OnuId:        &omciInd.OnuId,
 			ParentPortNo: ponPort,
 		})
 		if err != nil {
@@ -2146,7 +2146,7 @@
 		onuDevice, err = dh.getChildDeviceFromCore(ctx, &ca.ChildDeviceFilter{
 			ParentId:     dh.device.Id,
 			SerialNumber: serialNumber,
-			OnuId:        onuInd.OnuId,
+			OnuId:        &onuInd.OnuId,
 			ParentPortNo: ponPort,
 		})
 	}
@@ -2263,7 +2263,7 @@
 
 	onuDevice, err := dh.getChildDeviceFromCore(ctx, &ca.ChildDeviceFilter{
 		ParentId:     dh.device.Id,
-		OnuId:        onuID,
+		OnuId:        &onuID,
 		ParentPortNo: parentPort,
 	})
 
diff --git a/pkg/mocks/mockCoreClient.go b/pkg/mocks/mockCoreClient.go
index b68f60a..1255ab7 100644
--- a/pkg/mocks/mockCoreClient.go
+++ b/pkg/mocks/mockCoreClient.go
@@ -165,13 +165,20 @@
 }
 
 // GetChildDevice implements mock GetChildDevice
-func (mcs MockCoreService) GetChildDevice(ctx context.Context, in *ca.ChildDeviceFilter, opts ...grpc.CallOption) (*voltha.Device, error) {
+func (mcs MockCoreService) GetChildDevice(
+	ctx context.Context,
+	in *ca.ChildDeviceFilter,
+	opts ...grpc.CallOption,
+) (*voltha.Device, error) {
 	if in.ParentId == "" {
 		return nil, errors.New("device detection failed")
 	}
+	if in.OnuId == nil {
+		return nil, errors.New("device detection failed")
+	}
 	var onuDevice *voltha.Device
 	for _, val := range mcs.Devices {
-		if val.GetId() == fmt.Sprintf("%d", in.OnuId) {
+		if val.GetId() == fmt.Sprintf("%d", *in.OnuId) {
 			onuDevice = val
 			break
 		}
@@ -179,7 +186,6 @@
 	if onuDevice != nil {
 		return onuDevice, nil
 	}
-	// return &voltha.Device{}, nil
 	return nil, errors.New("device detection failed")
 }
 
diff --git a/vendor/github.com/opencord/voltha-protos/v5/go/core_adapter/core_adapter.pb.go b/vendor/github.com/opencord/voltha-protos/v5/go/core_adapter/core_adapter.pb.go
index c79baf3..a184eb0 100644
--- a/vendor/github.com/opencord/voltha-protos/v5/go/core_adapter/core_adapter.pb.go
+++ b/vendor/github.com/opencord/voltha-protos/v5/go/core_adapter/core_adapter.pb.go
@@ -82,7 +82,7 @@
 	state         protoimpl.MessageState `protogen:"open.v1"`
 	ParentId      string                 `protobuf:"bytes,1,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
 	SerialNumber  string                 `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	OnuId         uint32                 `protobuf:"varint,3,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	OnuId         *uint32                `protobuf:"varint,3,opt,name=onu_id,json=onuId,proto3,oneof" json:"onu_id,omitempty"`
 	ParentPortNo  uint32                 `protobuf:"varint,4,opt,name=parent_port_no,json=parentPortNo,proto3" json:"parent_port_no,omitempty"`
 	unknownFields protoimpl.UnknownFields
 	sizeCache     protoimpl.SizeCache
@@ -133,8 +133,8 @@
 }
 
 func (x *ChildDeviceFilter) GetOnuId() uint32 {
-	if x != nil {
-		return x.OnuId
+	if x != nil && x.OnuId != nil {
+		return *x.OnuId
 	}
 	return 0
 }
@@ -1181,12 +1181,13 @@
 	" voltha_protos/core_adapter.proto\x12\fcore_adapter\x1a\x1avoltha_protos/common.proto\x1a\x1avoltha_protos/voltha.proto\x1a\x1fvoltha_protos/openflow_13.proto\x1a\x1bvoltha_protos/adapter.proto\x1a\x1avoltha_protos/device.proto\x1a\x1evoltha_protos/extensions.proto\x1a\x1dvoltha_protos/omci_test.proto\"n\n" +
 	"\x13AdapterRegistration\x12*\n" +
 	"\aadapter\x18\x01 \x01(\v2\x10.adapter.AdapterR\aadapter\x12+\n" +
-	"\x06dTypes\x18\x02 \x01(\v2\x13.device.DeviceTypesR\x06dTypes\"\x92\x01\n" +
+	"\x06dTypes\x18\x02 \x01(\v2\x13.device.DeviceTypesR\x06dTypes\"\xa2\x01\n" +
 	"\x11ChildDeviceFilter\x12\x1b\n" +
 	"\tparent_id\x18\x01 \x01(\tR\bparentId\x12#\n" +
-	"\rserial_number\x18\x02 \x01(\tR\fserialNumber\x12\x15\n" +
-	"\x06onu_id\x18\x03 \x01(\rR\x05onuId\x12$\n" +
-	"\x0eparent_port_no\x18\x04 \x01(\rR\fparentPortNo\"q\n" +
+	"\rserial_number\x18\x02 \x01(\tR\fserialNumber\x12\x1a\n" +
+	"\x06onu_id\x18\x03 \x01(\rH\x00R\x05onuId\x88\x01\x01\x12$\n" +
+	"\x0eparent_port_no\x18\x04 \x01(\rR\fparentPortNoB\t\n" +
+	"\a_onu_id\"q\n" +
 	"\n" +
 	"PortFilter\x12\x1b\n" +
 	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x12\n" +
@@ -1364,6 +1365,7 @@
 	if File_voltha_protos_core_adapter_proto != nil {
 		return
 	}
+	file_voltha_protos_core_adapter_proto_msgTypes[1].OneofWrappers = []any{}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/vendor/modules.txt b/vendor/modules.txt
index f3bf157..2e53881 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -248,7 +248,7 @@
 github.com/opencord/voltha-lib-go/v7/pkg/probe
 github.com/opencord/voltha-lib-go/v7/pkg/techprofile
 github.com/opencord/voltha-lib-go/v7/pkg/version
-# github.com/opencord/voltha-protos/v5 v5.7.1
+# github.com/opencord/voltha-protos/v5 v5.7.2
 ## explicit; go 1.25.3
 github.com/opencord/voltha-protos/v5/go/adapter_service
 github.com/opencord/voltha-protos/v5/go/common
