diff --git a/controller/nucleus/gnmi_transport.go b/controller/nucleus/gnmi_transport.go
index d430a392e0ea313f2ce201434ff3dd8894016bee..beb213b9e20de6f1f01f8b1e25e270d9a594d6cc 100644
--- a/controller/nucleus/gnmi_transport.go
+++ b/controller/nucleus/gnmi_transport.go
@@ -314,29 +314,25 @@ func handleProcessResponseErrors(errs []error) error {
 	return fmt.Errorf("encountered %v errors during response processing\n%v", len(errs), errs)
 }
 
-func (g *Gnmi) processResponseDeletes(deletes []*gpb.Path, root ygot.ValidatedGoStruct, s *ytypes.Schema) error {
-	errs := make([]error, 0)
-
-	for _, path := range deletes {
-		if err := ytypes.DeleteNode(s.RootSchema(), root, path); err != nil {
-			errs = append(errs, err)
-		}
-		modelAsString, _ := ygot.EmitJSON(root, &ygot.EmitJSONConfig{
-			Format:         ygot.RFC7951,
-			Indent:         "",
-			SkipValidation: true,
-			RFC7951Config: &ygot.RFC7951JSONConfig{
-				AppendModuleName: true,
-			}})
-		if err := g.Unmarshal([]byte(modelAsString), path, root); err != nil {
-			errs = append(errs, err)
-		}
-
-		log.Error(root)
+func (g *Gnmi) processResponseDeletes(deletes []*gpb.Path, deviceModel ygot.ValidatedGoStruct, rootSchema *ytypes.Schema) error {
+	if err := ytypes.DeleteNode(rootSchema.RootSchema(), deviceModel, deletes[0]); err != nil {
+		return err
+	}
+	modelAsString, _ := ygot.EmitJSON(deviceModel, &ygot.EmitJSONConfig{
+		Format:         ygot.RFC7951,
+		Indent:         "",
+		SkipValidation: true,
+		RFC7951Config: &ygot.RFC7951JSONConfig{
+			AppendModuleName: true,
+		}})
+
+	rootPath, err := ygot.StringToStructuredPath("/")
+	if err != nil {
+		return err
 	}
 
-	if len(errs) != 0 {
-		return handleProcessResponseErrors(errs)
+	if err := g.Unmarshal([]byte(modelAsString), rootPath, deviceModel); err != nil {
+		return err
 	}
 
 	return nil