diff --git a/internal/pkg/openflow/stats.go b/internal/pkg/openflow/stats.go
index ccf7d7d..1cd656e 100644
--- a/internal/pkg/openflow/stats.go
+++ b/internal/pkg/openflow/stats.go
@@ -343,6 +343,7 @@
 	if err != nil {
 		return nil, err
 	}
+	logger.Debugw(ctx, "logicalDeviceFlows", log.Fields{"flows": resp})
 	var flows []*ofp.FlowStatsEntry
 	for _, item := range resp.GetItems() {
 		entry := ofp.NewFlowStatsEntry()
@@ -363,16 +364,24 @@
 		for _, oxmField := range pbMatch.GetOxmFields() {
 			field := oxmField.GetField()
 			ofbField := field.(*openflow_13.OfpOxmField_OfbField).OfbField
-			iOxm := parseOxm(ctx, ofbField)
-			fields = append(fields, iOxm)
+			iOxm, err := parseOxm(ctx, ofbField)
+			if err == nil {
+				fields = append(fields, iOxm)
+			} else {
+				logger.Errorw(ctx, "error-parsing-oxm", log.Fields{"err": err})
+			}
 		}
 
 		match.OxmList = fields
 		entry.SetMatch(*match)
 		var instructions []ofp.IInstruction
 		for _, ofpInstruction := range item.Instructions {
-			instruction := parseInstructions(ctx, ofpInstruction)
-			instructions = append(instructions, instruction)
+			instruction, err := parseInstructions(ctx, ofpInstruction)
+			if err == nil {
+				instructions = append(instructions, instruction)
+			} else {
+				logger.Errorw(ctx, "error-parsing-instruction", log.Fields{"err": err})
+			}
 		}
 		entry.Instructions = instructions
 		flows = append(flows, entry)
@@ -475,7 +484,10 @@
 	for _, item := range reply.GetItems() {
 		desc := item.GetDesc()
 
-		buckets := volthaBucketsToOpenflow(ctx, desc.Buckets)
+		buckets, err := volthaBucketsToOpenflow(ctx, desc.Buckets)
+		if err != nil {
+			return nil, err
+		}
 
 		groupDesc := &ofp.GroupDescStatsEntry{
 			GroupType: volthaGroupTypeToOpenflow(ctx, desc.Type),
