diff --git a/platform-mc/terminus_manager.cpp b/platform-mc/terminus_manager.cpp
index be70740..0aacf33 100644
--- a/platform-mc/terminus_manager.cpp
+++ b/platform-mc/terminus_manager.cpp
@@ -140,6 +140,14 @@
     }
 }
 
+std::string TerminusManager::constructEndpointObjPath(const MctpInfo& mctpInfo)
+{
+    std::string eidStr = std::to_string(std::get<0>(mctpInfo));
+    std::string networkIDStr = std::to_string(std::get<3>(mctpInfo));
+    return std::format("{}/networks/{}/endpoints/{}", MCTPPath, networkIDStr,
+                       eidStr);
+}
+
 void TerminusManager::discoverMctpTerminus(const MctpInfos& mctpInfos)
 {
     queuedMctpInfos.emplace(mctpInfos);
@@ -662,6 +670,18 @@
     auto rc = co_await sendRecvPldmMsgOverMctp(eid, request, responseMsg,
                                                responseLen);
 
+    if (rc == PLDM_ERROR_NOT_READY)
+    {
+        // Call Recover() to check enpoint's availability
+        // Set endpoint's availability in mctpInfoTable to false in advance
+        // to prevent message forwarding through this endpoint while mctpd
+        // is checking the endpoint.
+        std::string endpointObjPath =
+            constructEndpointObjPath(mctpInfo.value());
+        pldm::utils::recoverMctpEndpoint(endpointObjPath);
+        updateMctpEndpointAvailability(mctpInfo.value(), false);
+    }
+
     co_return rc;
 }
 
diff --git a/platform-mc/terminus_manager.hpp b/platform-mc/terminus_manager.hpp
index c4c8914..0eb2869 100644
--- a/platform-mc/terminus_manager.hpp
+++ b/platform-mc/terminus_manager.hpp
@@ -163,6 +163,13 @@
     void updateMctpEndpointAvailability(const MctpInfo& mctpInfo,
                                         Availability availability);
 
+    /** @brief Construct MCTP Endpoint object path base on the MCTP endpoint
+     *  info
+     *
+     *  @param[in] mctpInfo - information of the target endpoint
+     */
+    std::string constructEndpointObjPath(const MctpInfo& mctpInfo);
+
   private:
     /** @brief Find the terminus object pointer in termini list.
      *
