diff --git a/include/error_monitors/ierr_monitor.hpp b/include/error_monitors/ierr_monitor.hpp
index 025f899..c648432 100644
--- a/include/error_monitors/ierr_monitor.hpp
+++ b/include/error_monitors/ierr_monitor.hpp
@@ -30,6 +30,7 @@
     const static host_error_monitor::base_gpio_poll_monitor::AssertValue
         assertValue =
             host_error_monitor::base_gpio_poll_monitor::AssertValue::lowAssert;
+    std::shared_ptr<sdbusplus::asio::dbus_interface> assertIERR;
     const static constexpr size_t ierrPollingTimeMs = 100;
     const static constexpr size_t ierrTimeoutMs = 2000;
     const static constexpr size_t ierrTimeoutMsMax =
@@ -42,6 +43,8 @@
 
     static const constexpr char* callbackMgrPath =
         "/xyz/openbmc_project/CallbackManager";
+    static const constexpr char* assertPath =
+        "/xyz/openbmc_project/host_error_monitor/processor/IERR";
 
     void logEvent()
     {
@@ -357,6 +360,7 @@
             assertHandler();
 
         setLED();
+        assertIERR->set_property("Asserted", true);
 
         beep(conn, beepCPUIERR);
 
@@ -388,6 +392,7 @@
     void deassertHandler() override
     {
         unsetLED();
+        assertIERR->set_property("Asserted", false);
     }
 
     void setLED()
@@ -451,6 +456,11 @@
             [this](std::size_t& resp) { return getTimeoutMs(); });
         hostErrorTimeoutIface->initialize();
 
+        assertIERR = server.add_interface(
+            assertPath, "xyz.openbmc_project.HostErrorMonitor.Processor.IERR");
+        assertIERR->register_property("Asserted", false);
+        assertIERR->initialize();
+
         if (valid)
         {
             startPolling();
