diff --git a/rust/rhgitaly/src/service/ref.rs b/rust/rhgitaly/src/service/ref.rs
index d7b89af65ac037a9991cdeb092683cff081a7269_cnVzdC9yaGdpdGFseS9zcmMvc2VydmljZS9yZWYucnM=..293f7a90d6030863658454ebc743ac25b92d3f4d_cnVzdC9yaGdpdGFseS9zcmMvc2VydmljZS9yZWYucnM= 100644
--- a/rust/rhgitaly/src/service/ref.rs
+++ b/rust/rhgitaly/src/service/ref.rs
@@ -14,7 +14,7 @@
 use crate::gitaly::{RefExistsRequest, RefExistsResponse};
 use crate::gitlab::revision::{map_full_ref, RefError};
 use crate::metadata::correlation_id;
-use crate::repository::{default_repo_spec_error_status, repo_path};
+use crate::repository::{default_repo_spec_error_status, repo_store_vfs};
 
 #[derive(Debug)]
 pub struct RefServiceImpl {
@@ -56,8 +56,8 @@
     ) -> Result<Response<RefExistsResponse>, Status> {
         info!("Processing");
 
-        if let Some(gl_repo) = &request.repository {
-            let repo_path =
-                repo_path(&self.config, gl_repo).map_err(default_repo_spec_error_status)?;
-            let store_path = repo_path.join(".hg/store");
+        {
+            let store_vfs = repo_store_vfs(&self.config, &request.repository)
+                .await
+                .map_err(default_repo_spec_error_status)?;
 
@@ -63,5 +63,5 @@
 
-            let value = match map_full_ref(&store_path, &request.r#ref, |_tr| (), |_ka| ()).await {
+            let value = match map_full_ref(&store_vfs, &request.r#ref, |_tr| (), |_ka| ()).await {
                 Ok(()) => Ok(true),
                 Err(RefError::NotFound) => Ok(false),
                 Err(RefError::MissingRefName) => Ok(false),
@@ -69,5 +69,5 @@
                 Err(RefError::GitLabStateFileError(e)) => Err(Status::internal(format!("{:?}", e))),
             }?;
 
-            return Ok(Response::new(RefExistsResponse { value }));
+            Ok(Response::new(RefExistsResponse { value }))
         }
@@ -73,7 +73,4 @@
         }
-        Err(Status::invalid_argument(
-            "GetStorageByName: no such storage: \"\"",
-        ))
     }
 }