diff --git a/core_manager.cpp b/core_manager.cpp
index a62c89c..dc3e869 100644
--- a/core_manager.cpp
+++ b/core_manager.cpp
@@ -70,7 +70,7 @@
         auto mapperResponseMsg = b.call(mapper);
         mapperResponseMsg.read(mapperResponse);
     }
-    catch (const sdbusplus::exception::SdBusError& e)
+    catch (const sdbusplus::exception::exception& e)
     {
         log<level::ERR>(
             fmt::format("Failed to GetObject on Dump.Internal: {}", e.what())
@@ -91,7 +91,7 @@
     {
         b.call_noreply(m);
     }
-    catch (const sdbusplus::exception::SdBusError& e)
+    catch (const sdbusplus::exception::exception& e)
     {
         log<level::ERR>(
             fmt::format("Failed to create dump: {}", e.what()).c_str());
diff --git a/dump_utils.cpp b/dump_utils.cpp
index bcc9800..c642a47 100644
--- a/dump_utils.cpp
+++ b/dump_utils.cpp
@@ -38,7 +38,7 @@
             return std::string{};
         }
     }
-    catch (const sdbusplus::exception::SdBusError& e)
+    catch (const sdbusplus::exception::exception& e)
     {
         log<level::ERR>(fmt::format("Error in mapper method call, "
                                     "errormsg({}), PATH({}), INTERFACE({})",
@@ -84,7 +84,7 @@
         bootProgessStage = sdbusplus::xyz::openbmc_project::State::Boot::
             server::Progress::convertProgressStagesFromString(bootPgs);
     }
-    catch (const sdbusplus::exception::SdBusError& e)
+    catch (const sdbusplus::exception::exception& e)
     {
         log<level::ERR>(fmt::format("D-Bus call exception, OBJPATH({}), "
                                     "INTERFACE({}), EXCEPTION({})",
diff --git a/elog_watch.cpp b/elog_watch.cpp
index 212171b..86e42f2 100644
--- a/elog_watch.cpp
+++ b/elog_watch.cpp
@@ -69,7 +69,7 @@
     {
         msg.read(objectPath, propertyMap);
     }
-    catch (const sdbusplus::exception::SdBusError& e)
+    catch (const sdbusplus::exception::exception& e)
     {
         log<level::ERR>(
             fmt::format(
@@ -165,7 +165,7 @@
     {
         msg.read(objectPath);
     }
-    catch (const sdbusplus::exception::SdBusError& e)
+    catch (const sdbusplus::exception::exception& e)
     {
         log<level::ERR>(
             fmt::format(
diff --git a/ramoops_manager.cpp b/ramoops_manager.cpp
index 16ec7e8..c645d3b 100644
--- a/ramoops_manager.cpp
+++ b/ramoops_manager.cpp
@@ -46,7 +46,7 @@
         auto mapperResponseMsg = b.call(mapper);
         mapperResponseMsg.read(mapperResponse);
     }
-    catch (const sdbusplus::exception::SdBusError& e)
+    catch (const sdbusplus::exception::exception& e)
     {
         log<level::ERR>(
             fmt::format("Failed to parse dump create message, error({})",
@@ -68,7 +68,7 @@
     {
         b.call_noreply(m);
     }
-    catch (const sdbusplus::exception::SdBusError& e)
+    catch (const sdbusplus::exception::exception& e)
     {
         log<level::ERR>(
             fmt::format("Failed to create ramoops dump, errormsg({})", e.what())
