diff --git a/src/biosconfigcommands.cpp b/src/biosconfigcommands.cpp
index 38b044c..e6a6b16 100644
--- a/src/biosconfigcommands.cpp
+++ b/src/biosconfigcommands.cpp
@@ -34,6 +34,7 @@
 #include <sdbusplus/message/types.hpp>
 
 #include <filesystem>
+#include <string_view>
 
 namespace ipmi
 {
@@ -185,7 +186,28 @@
             getService(*dbus, biosConfigIntf, biosConfigBaseMgrPath);
         Value variant = getDbusProperty(*dbus, service, biosConfigBaseMgrPath,
                                         biosConfigIntf, resetBIOSSettingsProp);
-        ResetFlag = static_cast<uint8_t>(std::get<std::uint8_t>(variant));
+
+        std::string_view ResetStr = std::get<std::string>(variant);
+        if (ResetStr ==
+            "xyz.openbmc_project.BIOSConfig.Manager.ResetFlag.NoAction")
+        {
+            ResetFlag = 0;
+        }
+        else if (ResetStr == "xyz.openbmc_project.BIOSConfig.Manager.ResetFlag."
+                             "FactoryDefaults")
+        {
+            ResetFlag = 1;
+        }
+        else if (ResetStr == "xyz.openbmc_project.BIOSConfig.Manager.ResetFlag."
+                             "FailSafeDefaults")
+        {
+            ResetFlag = 2;
+        }
+        else
+        {
+            return ipmi::ccUnspecifiedError;
+        }
+
         return ipmi::ccSuccess;
     }
     catch (const std::exception& e)
@@ -796,8 +818,7 @@
 
     if (OSState != "OperatingState")
     {
-        std::string HashFilePath =
-            "/var/lib/bios-settings-manager/passwordData";
+        std::string HashFilePath = "/var/lib/bios-settings-manager/seedData";
 
         std::ifstream devIdFile(HashFilePath);
         if (devIdFile.is_open())
