diff --git a/host-bmc/dbus_to_host_effecters.cpp b/host-bmc/dbus_to_host_effecters.cpp
index b16c750..d83b4d9 100644
--- a/host-bmc/dbus_to_host_effecters.cpp
+++ b/host-bmc/dbus_to_host_effecters.cpp
@@ -164,19 +164,18 @@
     {
         auto propVal = dbusHandler->getDbusPropertyVariant(
             hostStatePath, "BootProgress", BootProgress::interface);
-        const auto& currHostState = std::get<std::string>(propVal);
-        if ((sdbusplus::message::convert_from_string<
-                 BootProgress::ProgressStages>(currHostState) !=
-             BootProgress::ProgressStages::SystemInitComplete) &&
-            (sdbusplus::message::convert_from_string<
-                 BootProgress::ProgressStages>(currHostState) !=
-             BootProgress::ProgressStages::OSRunning) &&
-            (sdbusplus::message::convert_from_string<
-                 BootProgress::ProgressStages>(currHostState) !=
-             BootProgress::ProgressStages::SystemSetup))
+
+        using Stages = BootProgress::ProgressStages;
+        auto currHostState = sdbusplus::message::convert_from_string<Stages>(
+                                 std::get<std::string>(propVal))
+                                 .value();
+
+        if (currHostState != Stages::SystemInitComplete &&
+            currHostState != Stages::OSRunning &&
+            currHostState != Stages::SystemSetup)
         {
             info("Host is not up. Current host state: {CUR_HOST_STATE}",
-                 "CUR_HOST_STATE", currHostState.c_str());
+                 "CUR_HOST_STATE", currHostState);
             return;
         }
     }
diff --git a/oem/ibm/libpldmresponder/platform_oem_ibm.cpp b/oem/ibm/libpldmresponder/platform_oem_ibm.cpp
index 5d9eea5..7ac8ada 100644
--- a/oem/ibm/libpldmresponder/platform_oem_ibm.cpp
+++ b/oem/ibm/libpldmresponder/platform_oem_ibm.cpp
@@ -34,16 +34,15 @@
     {
         auto propVal = pldm::utils::DBusHandler().getDbusPropertyVariant(
             hostStatePath, hostStateProperty, BootProgress::interface);
-        const auto& currHostState = std::get<std::string>(propVal);
-        if ((sdbusplus::message::convert_from_string<
-                 BootProgress::ProgressStages>(currHostState) !=
-             BootProgress::ProgressStages::SystemInitComplete) &&
-            (sdbusplus::message::convert_from_string<
-                 BootProgress::ProgressStages>(currHostState) !=
-             BootProgress::ProgressStages::OSRunning) &&
-            (sdbusplus::message::convert_from_string<
-                 BootProgress::ProgressStages>(currHostState) !=
-             BootProgress::ProgressStages::SystemSetup))
+
+        using Stages = BootProgress::ProgressStages;
+        auto currHostState = sdbusplus::message::convert_from_string<Stages>(
+                                 std::get<std::string>(propVal))
+                                 .value();
+
+        if (currHostState != Stages::SystemInitComplete &&
+            currHostState != Stages::OSRunning &&
+            currHostState != Stages::SystemSetup)
         {
             return PLDM_SUCCESS;
         }
