diff --git a/pkg/extension/service/extension.go b/pkg/extension/service/extension.go
index 1ee716d9c1d8066b2e1c5a6adbd082382ae30dc0..e0b4e2abcfc82c8d9b3769fff58d53d49f2d7c40 100644
--- a/pkg/extension/service/extension.go
+++ b/pkg/extension/service/extension.go
@@ -155,7 +155,11 @@ func (s *Extension) Uninstall(ctx context.Context, in *extension.UninstallReques
 }
 
 func (s *Extension) Action(ctx context.Context, in *extension.ActionRequest) (*extension.ActionResponse, error) {
-	ok, err := extension.CheckInstalled(ctx, s.Content, in.SpaceId, in.EnvId, in.Extension)
+	parsed, err := extension.ParseActionURL(in.Action)
+	if err != nil {
+		return nil, err
+	}
+	ok, err := extension.CheckInstalled(ctx, s.Content, in.SpaceId, in.EnvId, parsed.GetExtensionID())
 	if err != nil {
 		return nil, errors.Wrap(err, "check extension installed")
 	}