diff --git a/include/host_error_monitor.hpp b/include/host_error_monitor.hpp
index 336af02..8710a44 100644
--- a/include/host_error_monitor.hpp
+++ b/include/host_error_monitor.hpp
@@ -106,9 +106,9 @@
 static void printPECIError(const std::string& reg, const size_t addr,
                            const EPECIStatus peciStatus, const size_t cc)
 {
-    std::cerr << "Failed to read " << reg << " on CPU address " << addr
-              << ". Error: " << peciStatus << ": cc: 0x" << std::hex << cc
-              << "\n";
+    std::cerr << "Failed to read " << reg << " on CPU address " << std::dec
+              << addr << ". Error: " << peciStatus << ": cc: 0x" << std::hex
+              << cc << "\n";
 }
 
 static void beep(std::shared_ptr<sdbusplus::asio::connection> conn,
diff --git a/src/host_error_monitor.cpp b/src/host_error_monitor.cpp
index d01eac9..22754be 100644
--- a/src/host_error_monitor.cpp
+++ b/src/host_error_monitor.cpp
@@ -34,6 +34,19 @@
 
 static void init()
 {
+    static bool initialized = false;
+
+    if (!initialized)
+    {
+        initialized = true;
+        if (!error_monitors::startMonitors(io, conn))
+        {
+            throw std::runtime_error("Failed to start signal monitors");
+        }
+    }
+}
+static void initializeHostState()
+{
     // Get the current host state to prepare to start the signal monitors
     conn->async_method_call(
         [](boost::system::error_code ec,
@@ -50,11 +63,8 @@
             }
             hostOff = *state == "xyz.openbmc_project.State.Host.HostState.Off";
 
-            // Now we have the host state, start the signal monitors
-            if (!error_monitors::startMonitors(io, conn))
-            {
-                throw std::runtime_error("Failed to start signal monitors");
-            }
+            // Now we have the host state, we can init if needed
+            init();
         },
         "xyz.openbmc_project.State.Host", "/xyz/openbmc_project/state/host0",
         "org.freedesktop.DBus.Properties", "Get",
@@ -96,6 +106,9 @@
 
             hostOff = *state == "xyz.openbmc_project.State.Host.HostState.Off";
 
+            // Now we have the host state, we can init if needed
+            init();
+
             if (!hostOff)
             {
                 // Notify error monitors when the host turns on
@@ -122,7 +135,7 @@
         host_error_monitor::startHostStateMonitor();
 
     // Initialize the signal monitors
-    host_error_monitor::init();
+    host_error_monitor::initializeHostState();
 
     host_error_monitor::io.run();
 
