diff --git a/include/image_upload.hpp b/include/image_upload.hpp
index 914b3e8..f6a0dfc 100644
--- a/include/image_upload.hpp
+++ b/include/image_upload.hpp
@@ -7,6 +7,7 @@
 #include "dbus_singleton.hpp"
 #include "dbus_utility.hpp"
 #include "http_request.hpp"
+#include "io_context_singleton.hpp"
 #include "logging.hpp"
 #include "ossl_random.hpp"
 
@@ -46,14 +47,8 @@
         asyncResp->res.result(boost::beast::http::status::service_unavailable);
         return;
     }
-    if (req.ioService == nullptr)
-    {
-        asyncResp->res.result(
-            boost::beast::http::status::internal_server_error);
-        return;
-    }
     // Make this const static so it survives outside this method
-    static boost::asio::steady_timer timeout(*req.ioService,
+    static boost::asio::steady_timer timeout(getIoContext(),
                                              std::chrono::seconds(5));
 
     timeout.expires_after(std::chrono::seconds(15));
diff --git a/include/kvm_websocket.hpp b/include/kvm_websocket.hpp
index 3e0e09e..adf4c5e 100644
--- a/include/kvm_websocket.hpp
+++ b/include/kvm_websocket.hpp
@@ -2,6 +2,7 @@
 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
 #pragma once
 #include "app.hpp"
+#include "io_context_singleton.hpp"
 #include "logging.hpp"
 #include "websocket.hpp"
 
@@ -29,7 +30,7 @@
 {
   public:
     explicit KvmSession(crow::websocket::Connection& connIn) :
-        conn(connIn), hostSocket(conn.getIoContext())
+        conn(connIn), hostSocket(getIoContext())
     {
         boost::asio::ip::tcp::endpoint endpoint(
             boost::asio::ip::make_address("127.0.0.1"), 5900);
diff --git a/include/obmc_console.hpp b/include/obmc_console.hpp
index e9c2b15..e94b6a9 100644
--- a/include/obmc_console.hpp
+++ b/include/obmc_console.hpp
@@ -4,6 +4,7 @@
 #include "app.hpp"
 #include "dbus_singleton.hpp"
 #include "dbus_utility.hpp"
+#include "io_context_singleton.hpp"
 #include "logging.hpp"
 #include "websocket.hpp"
 
@@ -286,7 +287,7 @@
     }
 
     std::shared_ptr<ConsoleHandler> handler =
-        std::make_shared<ConsoleHandler>(conn.getIoContext(), conn);
+        std::make_shared<ConsoleHandler>(getIoContext(), conn);
     getConsoleHandlerMap().emplace(&conn, handler);
 
     conn.deferRead();
diff --git a/include/vm_websocket.hpp b/include/vm_websocket.hpp
index 424cb80..95cb982 100644
--- a/include/vm_websocket.hpp
+++ b/include/vm_websocket.hpp
@@ -7,6 +7,7 @@
 #include "app.hpp"
 #include "dbus_singleton.hpp"
 #include "dbus_utility.hpp"
+#include "io_context_singleton.hpp"
 #include "logging.hpp"
 #include "websocket.hpp"
 
@@ -205,8 +206,8 @@
                    const std::string& endpointIdIn, const std::string& pathIn) :
         socketId(socketIdIn), endpointId(endpointIdIn), path(pathIn),
 
-        peerSocket(connIn.getIoContext()),
-        acceptor(connIn.getIoContext(), stream_protocol::endpoint(socketId)),
+        peerSocket(getIoContext()),
+        acceptor(getIoContext(), stream_protocol::endpoint(socketId)),
         connection(connIn)
     {}
 
@@ -585,7 +586,7 @@
                 // media is the last digit of the endpoint /vm/0/0. A future
                 // enhancement can include supporting different endpoint values.
                 const char* media = "0";
-                handler = std::make_shared<Handler>(media, conn.getIoContext());
+                handler = std::make_shared<Handler>(media, getIoContext());
                 handler->connect();
             })
             .onclose([](crow::websocket::Connection& conn,
