diff --git a/pkg/action-url/action_url.go b/pkg/action-url/action_url.go
index 494f0556d6594a924dc2f2bbb20361df9e3b1d80..ccd67430156130377a49f5ef1c7cd28afc298644 100644
--- a/pkg/action-url/action_url.go
+++ b/pkg/action-url/action_url.go
@@ -17,7 +17,29 @@ type ActionURL struct {
 
 // New возвращает структуру ActionURL
 func New(action string) (*ActionURL, error) {
-	return parse(action)
+	actionURL := &ActionURL{}
+
+	if action == "" {
+		return actionURL, nil
+	}
+
+	err := actionURL.SetURL(action)
+	if err != nil {
+		return nil, err
+	}
+	if actionURL.URL.Scheme == "grpc" {
+		path := actionURL.Path
+		if strings.HasPrefix(actionURL.Path, "/") {
+			path = actionURL.Path[1:]
+		}
+		splitPath := strings.Split(path, "/")
+		if len(splitPath) < 2 {
+			return nil, errors.Errorf("incorrect action URL, no action id: '%s'", action)
+		}
+		actionURL.extension = splitPath[0]
+		actionURL.id = splitPath[1]
+	}
+	return actionURL, nil
 }
 
 // ID возвращает сохраненный в ActionURL id действия
@@ -55,28 +77,3 @@ func (p *ActionURL) Make() string {
 	}
 	return p.URL.String()
 }
-
-// parse функция для заполнения структуры ActionURL из переданного действия
-func parse(action string) (*ActionURL, error) {
-	if action == "" {
-		return &ActionURL{}, nil
-	}
-	actionURL := &ActionURL{}
-	err := actionURL.SetURL(action)
-	if err != nil {
-		return nil, err
-	}
-	if actionURL.URL.Scheme == "grpc" {
-		path := actionURL.Path
-		if strings.HasPrefix(actionURL.Path, "/") {
-			path = actionURL.Path[1:]
-		}
-		splitPath := strings.Split(path, "/")
-		if len(splitPath) < 2 {
-			return nil, errors.Errorf("incorrect action URL, no action id: '%s'", action)
-		}
-		actionURL.extension = splitPath[0]
-		actionURL.id = splitPath[1]
-	}
-	return actionURL, nil
-}
diff --git a/pkg/action-url/action_url_test.go b/pkg/action-url/action_url_test.go
index 30b4b32be112ee13250c8be929181d49a1301768..6ac8a3bd32fee851eeeda9d640d113bac80268c5 100644
--- a/pkg/action-url/action_url_test.go
+++ b/pkg/action-url/action_url_test.go
@@ -61,6 +61,12 @@ func TestActionURL_New(t *testing.T) {
 			want:    nil,
 			wantErr: assert.Error,
 		},
+		{
+			name:    "With no action id",
+			action:  "grpc:///perxisweb",
+			want:    nil,
+			wantErr: assert.Error,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {