diff --git a/src/main.rs b/src/main.rs
index e99f55fb9e7ec08c9aace94841b9259c076faf18..0cb3d23b7fed704a629bd81469ab2952e4f475ad 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -349,7 +349,7 @@ fn picolib_setup(args: &args::Run) {
     );
 }
 
-fn init_vshard() {
+fn preload_vshard() {
     let lua = ::tarantool::lua_state();
 
     macro_rules! preload {
@@ -382,8 +382,6 @@ fn init_vshard() {
     preload!("vshard.storage.sched", "vshard/storage/sched.lua");
     preload!("vshard.util", "vshard/util.lua");
     preload!("vshard.version", "vshard/version.lua");
-
-    lua.exec("vshard = require 'vshard'").unwrap();
 }
 
 fn init_handlers() {
@@ -616,7 +614,7 @@ fn init_common(args: &args::Run, cfg: &tarantool::Cfg) -> Storage {
     std::fs::create_dir_all(&args.data_dir).unwrap();
     tarantool::set_cfg(cfg);
 
-    init_vshard();
+    preload_vshard();
     init_handlers();
     traft::event::init();
     Storage::new().expect("Storage initialization failed")
diff --git a/src/traft/rpc/sharding.rs b/src/traft/rpc/sharding.rs
index 18659f245e5981ae918a75ae73ab4347c1e7ec63..ea14944296e2166308360dd4266370b4ab43809b 100644
--- a/src/traft/rpc/sharding.rs
+++ b/src/traft/rpc/sharding.rs
@@ -18,11 +18,19 @@ fn proc_sharding(req: Request) -> Result<Response, Error> {
     // TODO: fix user's permissions
     lua.exec("box.session.su('admin')")?;
     // TODO: only done on instances with corresponding roles
-    lua.exec_with("vshard.storage.cfg(..., box.info.uuid)", &cfg)
-        .map_err(tlua::LuaError::from)?;
+    lua.exec_with(
+        "vshard = require('vshard')
+        vshard.storage.cfg(..., box.info.uuid)",
+        &cfg,
+    )
+    .map_err(tlua::LuaError::from)?;
     // TODO: only done on instances with corresponding roles
-    lua.exec_with("vshard.router.cfg(...)", &cfg)
-        .map_err(tlua::LuaError::from)?;
+    lua.exec_with(
+        "vshard = require('vshard')
+        vshard.router.cfg(...)",
+        &cfg,
+    )
+    .map_err(tlua::LuaError::from)?;
 
     if req.bootstrap {
         lua.exec("vshard.router.bootstrap()")?;