diff --git a/phosphor-regulators/src/actions/pmbus_write_vout_command_action.cpp b/phosphor-regulators/src/actions/pmbus_write_vout_command_action.cpp
index 9e02746..ca1756f 100644
--- a/phosphor-regulators/src/actions/pmbus_write_vout_command_action.cpp
+++ b/phosphor-regulators/src/actions/pmbus_write_vout_command_action.cpp
@@ -161,7 +161,8 @@
         ss << "device: " << environment.getDeviceID()
            << ", register: VOUT_COMMAND, value_written: 0x" << std::hex
            << std::uppercase << valueWritten << ", value_read: 0x" << valueRead;
-        throw WriteVerificationError(ss.str());
+        throw WriteVerificationError(ss.str(), environment.getDeviceID(),
+                                     environment.getDevice().getFRU());
     }
 }
 
diff --git a/phosphor-regulators/src/write_verification_error.hpp b/phosphor-regulators/src/write_verification_error.hpp
index ec9d7a6..bd92ce5 100644
--- a/phosphor-regulators/src/write_verification_error.hpp
+++ b/phosphor-regulators/src/write_verification_error.hpp
@@ -45,13 +45,38 @@
      * Constructor.
      *
      * @param error error message
+     * @param deviceID unique ID of the device where error occurred
+     * @param inventoryPath inventory path of the device where error occurred
      */
-    explicit WriteVerificationError(const std::string& error) :
-        error{"WriteVerificationError: " + error}
+    explicit WriteVerificationError(const std::string& error,
+                                    const std::string& deviceID,
+                                    const std::string& inventoryPath) :
+        error{"WriteVerificationError: " + error},
+        deviceID{deviceID}, inventoryPath{inventoryPath}
     {
     }
 
     /**
+     * Returns the unique ID of the device where the error occurred.
+     *
+     * @return device ID
+     */
+    const std::string& getDeviceID() const
+    {
+        return deviceID;
+    }
+
+    /**
+     * Returns the inventory path of the device where the error occurred.
+     *
+     * @return inventory path
+     */
+    const std::string& getInventoryPath() const
+    {
+        return inventoryPath;
+    }
+
+    /**
      * Returns the description of this error.
      *
      * @return error description
@@ -66,6 +91,16 @@
      * Error message.
      */
     const std::string error{};
+
+    /**
+     * Unique ID of the device where the error occurred.
+     */
+    const std::string deviceID{};
+
+    /**
+     * Inventory path of the device where the error occurred.
+     */
+    const std::string inventoryPath{};
 };
 
 } // namespace phosphor::power::regulators
diff --git a/phosphor-regulators/test/actions/pmbus_write_vout_command_action_tests.cpp b/phosphor-regulators/test/actions/pmbus_write_vout_command_action_tests.cpp
index 825b5ec..e04e150 100644
--- a/phosphor-regulators/test/actions/pmbus_write_vout_command_action_tests.cpp
+++ b/phosphor-regulators/test/actions/pmbus_write_vout_command_action_tests.cpp
@@ -554,6 +554,9 @@
                 we.what(),
                 "WriteVerificationError: device: reg1, register: VOUT_COMMAND, "
                 "value_written: 0x14D, value_read: 0x14C");
+            EXPECT_EQ(we.getDeviceID(), "reg1");
+            EXPECT_EQ(we.getInventoryPath(), "/xyz/openbmc_project/inventory/"
+                                             "system/chassis/motherboard/reg1");
         }
         catch (...)
         {
diff --git a/phosphor-regulators/test/write_verification_error_tests.cpp b/phosphor-regulators/test/write_verification_error_tests.cpp
index dc794e8..bce7855 100644
--- a/phosphor-regulators/test/write_verification_error_tests.cpp
+++ b/phosphor-regulators/test/write_verification_error_tests.cpp
@@ -21,18 +21,44 @@
 
 TEST(WriteVerificationErrorTests, Constructor)
 {
-    WriteVerificationError error("device: vdd1, register: 0x21, "
-                                 "value_written: 0xAD, value_read: 0x00");
+    WriteVerificationError error(
+        "device: vdd1, register: 0x21, value_written: 0xAD, value_read: 0x00",
+        "vdd1",
+        "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg2");
+    EXPECT_EQ(error.getDeviceID(), "vdd1");
+    EXPECT_EQ(error.getInventoryPath(),
+              "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg2");
     EXPECT_STREQ(error.what(),
                  "WriteVerificationError: device: vdd1, register: 0x21, "
                  "value_written: 0xAD, value_read: 0x00");
 }
 
+TEST(WriteVerificationErrorTests, GetDeviceID)
+{
+    WriteVerificationError error(
+        "device: vdd1, register: 0x21, value_written: 0xAD, value_read: 0x00",
+        "vdd1",
+        "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg2");
+    EXPECT_EQ(error.getDeviceID(), "vdd1");
+}
+
+TEST(WriteVerificationErrorTests, GetInventoryPath)
+{
+    WriteVerificationError error(
+        "device: vdd1, register: 0x21, value_written: 0xAD, value_read: 0x00",
+        "vdd1",
+        "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg2");
+    EXPECT_EQ(error.getInventoryPath(),
+              "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg2");
+}
+
 TEST(WriteVerificationErrorTests, What)
 {
-    WriteVerificationError error("device: vdd2, register: 0x21, "
-                                 "value_written: 0x32, value_read: 0x33");
+    WriteVerificationError error(
+        "device: vdd1, register: 0x21, value_written: 0xAD, value_read: 0x00",
+        "vdd1",
+        "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg2");
     EXPECT_STREQ(error.what(),
-                 "WriteVerificationError: device: vdd2, register: 0x21, "
-                 "value_written: 0x32, value_read: 0x33");
+                 "WriteVerificationError: device: vdd1, register: 0x21, "
+                 "value_written: 0xAD, value_read: 0x00");
 }
