diff --git a/oem/ibm/libpldmresponder/file_io_type_dump.cpp b/oem/ibm/libpldmresponder/file_io_type_dump.cpp
index 94821b4..87eaa22 100644
--- a/oem/ibm/libpldmresponder/file_io_type_dump.cpp
+++ b/oem/ibm/libpldmresponder/file_io_type_dump.cpp
@@ -73,7 +73,7 @@
 
     catch (const std::exception& e)
     {
-        std::cerr << "Error " << e.what()
+        std::cerr << "findDumpObjPath: Error " << e.what()
                   << "found with GetManagedObjects call in findDumpObjPath "
                   << "with objPath=" << DUMP_MANAGER_PATH
                   << " and intf=" << dumpEntryIntf << "\n";
@@ -142,8 +142,10 @@
     }
     catch (const std::exception& e)
     {
-        std::cerr << "failed to make a d-bus call to DUMP manager, ERROR="
-                  << e.what() << "\n";
+        std::cerr << "newFileAvailable: Error " << e.what()
+                  << "found while notifying new dump to dump manager "
+                  << "with objPath=" << notifyObjPath
+                  << " and intf=" << dumpInterface << "\n";
         return PLDM_ERROR;
     }
 
@@ -168,8 +170,10 @@
     }
     catch (const std::exception& e)
     {
-        std::cerr << "failed to make a d-bus call to DUMP manager, ERROR="
-                  << e.what() << "\n";
+        std::cerr << "getOffloadUri: Error " << e.what()
+                  << "found while fetching the dump offload URI "
+                  << "with objPath=" << path.c_str()
+                  << " and intf=" << socketInterface << "\n";
     }
 
     return socketInterface;
@@ -237,9 +241,11 @@
             }
             catch (const std::exception& e)
             {
-                std::cerr << "failed to make a d-bus call to DUMP "
-                             "manager, ERROR="
-                          << e.what() << "\n";
+                std::cerr << "fileAck: Error " << e.what()
+                          << "found while setting the dump progress status as "
+                          << "Failed with objPath=" << path.c_str()
+                          << " and intf=Common.Progress"
+                          << "\n";
             }
         }
 
@@ -271,7 +277,7 @@
             }
             catch (const std::exception& e)
             {
-                std::cerr << "Failed to make a d-bus call to DUMP "
+                std::cerr << "fileAck: Failed to make a d-bus call to DUMP "
                              "manager to reset source dump id of "
                           << path.c_str() << ", with ERROR=" << e.what()
                           << "\n";
@@ -291,7 +297,7 @@
             catch (const std::exception& e)
             {
                 std::cerr
-                    << "Failed to make a d-bus method to delete the dump entry "
+                    << "fileAck: Failed to make a d-bus method to delete the dump entry "
                     << path.c_str() << ", with ERROR=" << e.what() << "\n";
                 pldm::utils::reportError(
                     "xyz.openbmc_project.bmc.PLDM.fileAck.DumpEntryDeleteFail");
@@ -312,8 +318,9 @@
             catch (const std::exception& e)
             {
                 std::cerr
-                    << "failed to make a d-bus call to DUMP manager, ERROR="
-                    << e.what() << "\n";
+                    << "fileAck: Failed to make a d-bus method to set the dump "
+                    << "offloaded property to true with path=" << path.c_str()
+                    << "and with ERROR=" << e.what() << "\n";
             }
 
             auto socketInterface = getOffloadUri(fileHandle);
