diff --git a/dump-extensions/openpower-dumps/resource_dump_entry.cpp b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
index a1d90a2..0f45bc2 100644
--- a/dump-extensions/openpower-dumps/resource_dump_entry.cpp
+++ b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
@@ -4,6 +4,8 @@
 #include "host_transport_exts.hpp"
 #include "op_dump_consts.hpp"
 
+#include <fmt/core.h>
+
 #include <phosphor-logging/elog-errors.hpp>
 #include <xyz/openbmc_project/Common/error.hpp>
 
@@ -38,7 +40,10 @@
 void Entry::delete_()
 {
     auto srcDumpID = sourceDumpId();
-
+    auto dumpId = id;
+    log<level::INFO>(fmt::format("Resource dump delete id({}) srcdumpid({})",
+                                 dumpId, srcDumpID)
+                         .c_str());
     // Remove Dump entry D-bus object
     phosphor::dump::Entry::delete_();
 
diff --git a/host-transport-extensions/pldm/oem/ibm/pldm_oem_cmds.cpp b/host-transport-extensions/pldm/oem/ibm/pldm_oem_cmds.cpp
index a16f942..21be03a 100644
--- a/host-transport-extensions/pldm/oem/ibm/pldm_oem_cmds.cpp
+++ b/host-transport-extensions/pldm/oem/ibm/pldm_oem_cmds.cpp
@@ -188,17 +188,10 @@
                                 "allowed due to encode fileack failed"));
     }
 
-    uint8_t* pldmRespMsg = nullptr;
-    size_t pldmRespMsgSize;
-
     CustomFd pldmFd(openPLDM());
 
-    retCode =
-        pldm_send_recv(mctpEndPointId, pldmFd(), fileAckReqMsg.data(),
-                       fileAckReqMsg.size(), &pldmRespMsg, &pldmRespMsgSize);
-
-    std::unique_ptr<uint8_t, decltype(std::free)*> pldmRespMsgPtr{pldmRespMsg,
-                                                                  std::free};
+    retCode = pldm_send(mctpEndPointId, pldmFd(), fileAckReqMsg.data(),
+                        fileAckReqMsg.size());
     if (retCode != PLDM_REQUESTER_SUCCESS)
     {
         auto errorNumber = errno;
@@ -213,26 +206,10 @@
                                 "allowed due to fileack send failed"));
     }
 
-    uint8_t completionCode;
-
-    retCode =
-        decode_file_ack_resp(reinterpret_cast<pldm_msg*>(pldmRespMsgPtr.get()),
-                             pldmRespMsgSize - pldmMsgHdrSize, &completionCode);
-
-    if (retCode || completionCode)
-    {
-        log<level::ERR>(
-            fmt::format("Failed to delete host dump, SRC_DUMP_ID({}), "
-                        "PLDM_FILE_IO_TYPE({}), PLDM_RETURN_CODE({}), "
-                        "PLDM_COMPLETION_CODE({})",
-                        dumpId, pldmDumpType, retCode, completionCode)
-                .c_str());
-        elog<NotAllowed>(Reason("Host dump deletion via pldm is "
-                                "failed"));
-    }
-
     log<level::INFO>(
-        fmt::format("Deleted host dump, SRC_DUMP_ID({})", dumpId).c_str());
+        fmt::format("Sent request to host to delete the dump, SRC_DUMP_ID({})",
+                    dumpId)
+            .c_str());
 }
 } // namespace pldm
 } // namespace dump
