diff --git a/core_manager.cpp b/core_manager.cpp
index dfa1aeb..3ab726b 100644
--- a/core_manager.cpp
+++ b/core_manager.cpp
@@ -2,6 +2,7 @@
 #include <experimental/filesystem>
 
 #include <phosphor-logging/log.hpp>
+#include <sdbusplus/exception.hpp>
 
 #include "core_manager.hpp"
 #include "config.h"
@@ -72,7 +73,17 @@
     }
 
     map<string, vector<string>> mapperResponse;
-    mapperResponseMsg.read(mapperResponse);
+    try
+    {
+        mapperResponseMsg.read(mapperResponse);
+    }
+    catch (const sdbusplus::exception::SdBusError& e)
+    {
+        log<level::ERR>("Failed to parse dump create message",
+                        entry("ERROR=%s", e.what()),
+                        entry("REPLY_SIG=%s", mapperResponseMsg.get_signature()));
+        return;
+    }
     if (mapperResponse.empty())
     {
         log<level::ERR>("Error reading mapper response");
diff --git a/elog_watch.cpp b/elog_watch.cpp
index 6cb7a0f..e2a3866 100644
--- a/elog_watch.cpp
+++ b/elog_watch.cpp
@@ -1,5 +1,6 @@
 #include <cereal/cereal.hpp>
 #include <phosphor-logging/elog.hpp>
+#include <sdbusplus/exception.hpp>
 
 #include "elog_watch.hpp"
 #include "dump_internal.hpp"
@@ -65,7 +66,17 @@
         sdbusplus::xyz::openbmc_project::Dump::Create::Error::QuotaExceeded;
 
     LogEntryMsg logEntry;
-    msg.read(logEntry);
+    try
+    {
+        msg.read(logEntry);
+    }
+    catch (const sdbusplus::exception::SdBusError& e)
+    {
+        log<level::ERR>("Failed to parse elog add signal",
+                        entry("ERROR=%s", e.what()),
+                        entry("REPLY_SIG=%s", msg.get_signature()));
+        return;
+    }
 
     std::string objectPath(std::move(logEntry.first));
 
@@ -135,7 +146,17 @@
 void Watch::delCallback(sdbusplus::message::message& msg)
 {
     sdbusplus::message::object_path logEntry;
-    msg.read(logEntry);
+    try
+    {
+        msg.read(logEntry);
+    }
+    catch (const sdbusplus::exception::SdBusError& e)
+    {
+        log<level::ERR>("Failed to parse elog del signal",
+                        entry("ERROR=%s", e.what()),
+                        entry("REPLY_SIG=%s", msg.get_signature()));
+        return;
+    }
 
     //Get elog entry message string.
     std::string objectPath(logEntry);
