[VOL-3891] Avoid runtime error due to null instruction, adding also logs for further debugging

Change-Id: Ibec27f73a7b4dc50422864761609ca4404e4ef9b
diff --git a/internal/pkg/openflow/group.go b/internal/pkg/openflow/group.go
index 0b316bd..42f1671 100644
--- a/internal/pkg/openflow/group.go
+++ b/internal/pkg/openflow/group.go
@@ -18,6 +18,7 @@
 
 import (
 	"context"
+	"fmt"
 	"github.com/opencord/goloxi"
 	ofp "github.com/opencord/goloxi/of13"
 	"github.com/opencord/voltha-lib-go/v4/pkg/log"
@@ -123,11 +124,14 @@
 	return outActions
 }
 
-func volthaBucketsToOpenflow(ctx context.Context, buckets []*openflow_13.OfpBucket) []*ofp.Bucket {
+func volthaBucketsToOpenflow(ctx context.Context, buckets []*openflow_13.OfpBucket) ([]*ofp.Bucket, error) {
 	outBuckets := make([]*ofp.Bucket, len(buckets))
 
 	for i, bucket := range buckets {
-		actions := volthaActionsToOpenflow(ctx, bucket.Actions)
+		actions, err := volthaActionsToOpenflow(ctx, bucket.Actions)
+		if err != nil {
+			return nil, err
+		}
 		b := &ofp.Bucket{
 			Weight:     uint16(bucket.Weight),
 			WatchPort:  ofp.Port(bucket.WatchPort),
@@ -137,15 +141,21 @@
 		outBuckets[i] = b
 	}
 
-	return outBuckets
+	return outBuckets, nil
 }
 
-func volthaActionsToOpenflow(ctx context.Context, actions []*openflow_13.OfpAction) []goloxi.IAction {
+func volthaActionsToOpenflow(ctx context.Context, actions []*openflow_13.OfpAction) ([]goloxi.IAction, error) {
 	outActions := make([]goloxi.IAction, len(actions))
 
 	for i, action := range actions {
-		outActions[i] = parseAction(ctx, action)
+		outAction, err := parseAction(ctx, action)
+		if err == nil {
+			outActions[i] = outAction
+		} else {
+			return nil, fmt.Errorf("can't-parse-action %v", err)
+		}
+
 	}
 
-	return outActions
+	return outActions, nil
 }