diff --git a/libpldmresponder/oem_handler.hpp b/libpldmresponder/oem_handler.hpp
index 3d6c768..bbb18eb 100644
--- a/libpldmresponder/oem_handler.hpp
+++ b/libpldmresponder/oem_handler.hpp
@@ -89,6 +89,9 @@
      *         is sent to host */
     virtual void countSetEventReceiver() = 0;
 
+    /** @brief Interface to check the BMC state */
+    virtual int checkBMCState() = 0;
+
     virtual ~Handler() = default;
 
   protected:
diff --git a/libpldmresponder/platform.cpp b/libpldmresponder/platform.cpp
index 7c011fa..9cdc6fd 100644
--- a/libpldmresponder/platform.cpp
+++ b/libpldmresponder/platform.cpp
@@ -144,8 +144,20 @@
 
 Response Handler::getPDR(const pldm_msg* request, size_t payloadLength)
 {
-    // Build FRU table if not built, since entity association PDR's are built
-    // when the FRU table is constructed.
+    if (hostPDRHandler)
+    {
+        if (hostPDRHandler->isHostUp() && oemPlatformHandler != nullptr)
+        {
+            auto rc = oemPlatformHandler->checkBMCState();
+            if (rc != PLDM_SUCCESS)
+            {
+                return ccOnlyResponse(request, PLDM_ERROR_NOT_READY);
+            }
+        }
+    }
+
+    // Build FRU table if not built, since entity association PDR's
+    // are built when the FRU table is constructed.
     if (fruHandler)
     {
         fruHandler->buildFRUTable();
@@ -679,8 +691,8 @@
     return response;
 }
 
-void Handler::_processPostGetPDRActions(
-    sdeventplus::source::EventBase& /*source */)
+void Handler::_processPostGetPDRActions(sdeventplus::source::EventBase&
+                                        /*source */)
 {
     deferredGetPDREvent.reset();
     dbusToPLDMEventHandler->listenSensorEvent(pdrRepo, sensorDbusObjMaps);
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.cpp b/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
index c3bff2e..a9cf1a4 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
@@ -575,6 +575,31 @@
                   << "ERROR=" << e.what() << "\n";
     }
 }
+int pldm::responder::oem_ibm_platform::Handler::checkBMCState()
+{
+    try
+    {
+        pldm::utils::PropertyValue propertyValue =
+            pldm::utils::DBusHandler().getDbusPropertyVariant(
+                "/xyz/openbmc_project/state/bmc0", "CurrentBMCState",
+                "xyz.openbmc_project.State.BMC");
+
+        if (std::get<std::string>(propertyValue) ==
+            "xyz.openbmc_project.State.BMC.BMCState.NotReady")
+        {
+            std::cerr << "GetPDR : PLDM stack is not ready for PDR exchange"
+                      << std::endl;
+            return PLDM_ERROR_NOT_READY;
+        }
+    }
+    catch (const std::exception& e)
+    {
+        std::cerr << "Error getting the current BMC state" << std::endl;
+        return PLDM_ERROR;
+    }
+    return PLDM_SUCCESS;
+}
+
 } // namespace oem_ibm_platform
 } // namespace responder
 } // namespace pldm
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
index 8181149..3f4e778 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
@@ -178,6 +178,9 @@
     /** @brief To disable to the watchdog timer on host poweron completion*/
     void disableWatchDogTimer();
 
+    /** @brief to check the BMC state*/
+    int checkBMCState();
+
     ~Handler() = default;
 
     pldm::responder::CodeUpdate* codeUpdate; //!< pointer to CodeUpdate object
