diff --git a/src/libstore/local-binary-cache-store.cc b/src/libstore/local-binary-cache-store.cc
index 357bc74df1357eceb4fd21c4e600ed48db96ab44..b5744448e47e309f7f0353d3ae80cdd0efd6bba8 100644
--- a/src/libstore/local-binary-cache-store.cc
+++ b/src/libstore/local-binary-cache-store.cc
@@ -20,7 +20,7 @@ private:
 public:
 
     LocalBinaryCacheStore(
-        [[maybe_unused]] const std::string scheme,
+        const std::string scheme,
         const Path & binaryCacheDir,
         const Params & params)
         : StoreConfig(params)
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc
index 4c8ffe71e24f2ee7ba72bbca73351b54ab589ed7..1abe236f71b84aafe7aed318cda3dde9651fa5bf 100644
--- a/src/libstore/remote-store.cc
+++ b/src/libstore/remote-store.cc
@@ -133,7 +133,7 @@ UDSRemoteStore::UDSRemoteStore(const Params & params)
 
 
 UDSRemoteStore::UDSRemoteStore(
-        [[maybe_unused]] const std::string scheme,
+        const std::string scheme,
         std::string socket_path,
         const Params & params)
     : UDSRemoteStore(params)
diff --git a/src/libstore/s3-binary-cache-store.cc b/src/libstore/s3-binary-cache-store.cc
index 0b9c9bb310c90753d87b75d8a76e9226bb05820e..b3541d7b86a1cd1677326875910e695394a01d9f 100644
--- a/src/libstore/s3-binary-cache-store.cc
+++ b/src/libstore/s3-binary-cache-store.cc
@@ -199,7 +199,7 @@ struct S3BinaryCacheStoreImpl : public S3BinaryCacheStore, virtual S3BinaryCache
     S3Helper s3Helper;
 
     S3BinaryCacheStoreImpl(
-        [[maybe_unused]] const std::string & scheme,
+        const std::string & scheme,
         const std::string & bucketName,
         const Params & params)
         : StoreConfig(params)
diff --git a/src/libstore/ssh-store.cc b/src/libstore/ssh-store.cc
index df383bba6ebb552f002371a1b61617b89439439f..8b6e48fb0a3e03c0278e6968dd3e069b3c6149d6 100644
--- a/src/libstore/ssh-store.cc
+++ b/src/libstore/ssh-store.cc
@@ -24,7 +24,7 @@ class SSHStore : public virtual RemoteStore, public virtual SSHStoreConfig
 {
 public:
 
-    SSHStore([[maybe_unused]] const std::string & scheme, const std::string & host, const Params & params)
+    SSHStore(const std::string & scheme, const std::string & host, const Params & params)
         : StoreConfig(params)
         , Store(params)
         , RemoteStore(params)
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh
index 81b979b73689010b120fc3f3960c444567d4490a..1bea4837b341751c3fc5a63148ed3ce6d2991961 100644
--- a/src/libstore/store-api.hh
+++ b/src/libstore/store-api.hh
@@ -820,6 +820,7 @@ struct Implementations
     {
         if (!registered) registered = new std::vector<StoreFactory>();
         StoreFactory factory{
+            .uriSchemes = T::uriSchemes(),
             .create =
                 ([](const std::string & scheme, const std::string & uri, const Store::Params & params)
                  -> std::shared_ptr<Store>
@@ -827,8 +828,7 @@ struct Implementations
             .getConfig =
                 ([]()
                  -> std::shared_ptr<StoreConfig>
-                 { return std::make_shared<TConfig>(StringMap({})); }),
-            .uriSchemes = T::uriSchemes()
+                 { return std::make_shared<TConfig>(StringMap({})); })
         };
         registered->push_back(factory);
     }