diff --git a/struct_utils/named_values_to_struct.go b/struct_utils/named_values_to_struct.go
index 97861207876e14ebce9cace94dadc1d10576825a..a7dfeb1bbc4b68f678baac47ec04a2c4f011e0be 100644
--- a/struct_utils/named_values_to_struct.go
+++ b/struct_utils/named_values_to_struct.go
@@ -263,6 +263,10 @@ func unmarshalNamedValuesIntoStructPtr(prefix string, namedValues map[string][]s
 		if structTypeField.Type.Kind() == reflect.Slice {
 			// this param struct field is a slice, iterate over all specified values
 			for i, fieldValue := range fieldValues {
+				if fieldValue == "[]" && structTypeField.Type.Elem().Kind() != reflect.String {
+					// empty array - do nothing
+					continue
+				}
 				parsedValue, parseErr := unmarshalValue(fieldValue, structTypeField.Type.Elem())
 				if parseErr != nil {
 					err = errors.Wrapf(parseErr, "invalid %s[%d]", fieldName, i)