diff --git a/src/host_error_monitor.cpp b/src/host_error_monitor.cpp
index f8de2d3..f1cab3d 100644
--- a/src/host_error_monitor.cpp
+++ b/src/host_error_monitor.cpp
@@ -269,19 +269,30 @@
             std::string interfaceName;
             boost::container::flat_map<std::string, std::variant<std::string>>
                 propertiesChanged;
-            std::string state;
             try
             {
                 msg.read(interfaceName, propertiesChanged);
-                state =
-                    std::get<std::string>(propertiesChanged.begin()->second);
             }
             catch (std::exception& e)
             {
                 std::cerr << "Unable to read host state\n";
                 return;
             }
-            hostOff = state == "xyz.openbmc_project.State.Host.HostState.Off";
+            // We only want to check for CurrentHostState
+            if (propertiesChanged.begin()->first != "CurrentHostState")
+            {
+                return;
+            }
+            std::string* state =
+                std::get_if<std::string>(&(propertiesChanged.begin()->second));
+            if (state == nullptr)
+            {
+                std::cerr << propertiesChanged.begin()->first
+                          << " property invalid\n";
+                return;
+            }
+
+            hostOff = *state == "xyz.openbmc_project.State.Host.HostState.Off";
 
             if (hostOff)
             {
