diff --git a/src/main.cpp b/src/main.cpp
index 2f93899..578d505 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -31,14 +31,14 @@
  * more types of storage devices.
  */
 void createStorageObjects(
-    boost::asio::io_context& io, sdbusplus::asio::object_server& objectServer,
+    sdbusplus::asio::object_server& objectServer,
     boost::container::flat_map<
         std::string, std::unique_ptr<estoraged::EStoraged>>& storageObjects,
     std::shared_ptr<sdbusplus::asio::connection>& dbusConnection)
 {
     auto getter = std::make_shared<estoraged::GetStorageConfiguration>(
         dbusConnection,
-        [&io, &objectServer, &storageObjects](
+        [&objectServer, &storageObjects](
             const estoraged::ManagedStorageType& storageConfigurations) {
             size_t numConfigObj = storageConfigurations.size();
             if (numConfigObj > 1)
@@ -124,9 +124,8 @@
                                    std::unique_ptr<estoraged::EStoraged>>
             storageObjects;
 
-        boost::asio::post(io, [&]() {
-            createStorageObjects(io, server, storageObjects, conn);
-        });
+        boost::asio::post(
+            io, [&]() { createStorageObjects(server, storageObjects, conn); });
 
         /*
          * Set up an event handler to process any new configuration objects
@@ -160,7 +159,7 @@
                             lg2::error("timer error");
                             return;
                         }
-                        createStorageObjects(io, server, storageObjects, conn);
+                        createStorageObjects(server, storageObjects, conn);
                     });
             };
 
