diff --git a/dbus/dbusconfiguration.cpp b/dbus/dbusconfiguration.cpp
index 55151d3..8e69455 100644
--- a/dbus/dbusconfiguration.cpp
+++ b/dbus/dbusconfiguration.cpp
@@ -296,7 +296,7 @@
             helper.getProperty(service, path, interface, *thresholdProperty,
                                reading);
         }
-        catch (const sdbusplus::exception::SdBusError& ex)
+        catch (const sdbusplus::exception::exception& ex)
         {
             // unsupported threshold, leaving reading at 0
         }
diff --git a/dbus/dbushelper.cpp b/dbus/dbushelper.cpp
index 8601733..a192fa2 100644
--- a/dbus/dbushelper.cpp
+++ b/dbus/dbushelper.cpp
@@ -58,7 +58,7 @@
 
         responseMsg.read(response);
     }
-    catch (const sdbusplus::exception::SdBusError& ex)
+    catch (const sdbusplus::exception::exception& ex)
     {
         log<level::ERR>("ObjectMapper call failure",
                         entry("WHAT=%s", ex.what()));
@@ -88,7 +88,7 @@
         auto valueResponseMsg = _bus.call(pimMsg);
         valueResponseMsg.read(propMap);
     }
-    catch (const sdbusplus::exception::SdBusError& ex)
+    catch (const sdbusplus::exception::exception& ex)
     {
         log<level::ERR>("GetAll Properties Failed",
                         entry("WHAT=%s", ex.what()));
diff --git a/dbus/dbushelper.hpp b/dbus/dbushelper.hpp
index 81a7238..ffda223 100644
--- a/dbus/dbushelper.hpp
+++ b/dbus/dbushelper.hpp
@@ -56,7 +56,7 @@
             auto valueResponseMsg = _bus.call(msg);
             valueResponseMsg.read(result);
         }
-        catch (const sdbusplus::exception::SdBusError& ex)
+        catch (const sdbusplus::exception::exception& ex)
         {
             log::log<log::level::ERR>("Get Property Failed",
                                       log::entry("WHAT=%s", ex.what()));
diff --git a/dbus/dbuswrite.cpp b/dbus/dbuswrite.cpp
index fce95ae..880dea9 100644
--- a/dbus/dbuswrite.cpp
+++ b/dbus/dbuswrite.cpp
@@ -89,7 +89,7 @@
         // TODO: if we don't use the reply, call_noreply()
         auto resp = writeBus.call(mesg);
     }
-    catch (const sdbusplus::exception::SdBusError& ex)
+    catch (const sdbusplus::exception::exception& ex)
     {
         log<level::ERR>("Dbus Call Failure", entry("PATH=%s", path.c_str()),
                         entry("WHAT=%s", ex.what()));
@@ -152,7 +152,7 @@
         // TODO: consider call_noreplly
         auto resp = writeBus.call(mesg);
     }
-    catch (const sdbusplus::exception::SdBusError& ex)
+    catch (const sdbusplus::exception::exception& ex)
     {
         log<level::ERR>("Dbus Call Failure", entry("PATH=%s", path.c_str()),
                         entry("WHAT=%s", ex.what()));
diff --git a/ipmi/dbus_mode.cpp b/ipmi/dbus_mode.cpp
index 7ea7fd4..b9cdb67 100644
--- a/ipmi/dbus_mode.cpp
+++ b/ipmi/dbus_mode.cpp
@@ -68,7 +68,7 @@
 
         *value = std::get<bool>(propMap[property]);
     }
-    catch (const sdbusplus::exception::SdBusError& ex)
+    catch (const sdbusplus::exception::exception& ex)
     {
         return IPMI_CC_INVALID;
     }
@@ -95,7 +95,7 @@
     {
         PropertyWriteBus.call_noreply(pimMsg);
     }
-    catch (const sdbusplus::exception::SdBusError& ex)
+    catch (const sdbusplus::exception::exception& ex)
     {
         return IPMI_CC_INVALID;
     }
diff --git a/setsensor.cpp b/setsensor.cpp
index 60ce21a..c7de0ec 100644
--- a/setsensor.cpp
+++ b/setsensor.cpp
@@ -43,7 +43,7 @@
         auto responseMsg = PropertyWriteBus.call(pimMsg);
         fprintf(stderr, "call to Set the host sensor value succeeded.\n");
     }
-    catch (const sdbusplus::exception::SdBusError& ex)
+    catch (const sdbusplus::exception::exception& ex)
     {
         fprintf(stderr, "call to Set the host sensor value failed.\n");
     }
@@ -76,7 +76,7 @@
         auto responseMsg = PropertyWriteBus.call(pimMsg);
         fprintf(stderr, "call to Set the manual mode succeeded.\n");
     }
-    catch (const sdbusplus::exception::SdBusError& ex)
+    catch (const sdbusplus::exception::exception& ex)
     {
         fprintf(stderr, "call to Set the manual mode failed.\n");
     }
