diff --git a/src/sensor.cpp b/src/sensor.cpp
index 387d0d5..ce25a86 100644
--- a/src/sensor.cpp
+++ b/src/sensor.cpp
@@ -136,13 +136,13 @@
 
     signalMonitor = std::make_unique<sdbusplus::bus::match_t>(
         *bus, param,
-        [weakSelf = weak_from_this()](sdbusplus::message::message& message) {
+        [weakSelf = weak_from_this()](sdbusplus::message_t& message) {
             signalProc(weakSelf, message);
         });
 }
 
 void Sensor::signalProc(const std::weak_ptr<Sensor>& weakSelf,
-                        sdbusplus::message::message& message)
+                        sdbusplus::message_t& message)
 {
     if (auto self = weakSelf.lock())
     {
diff --git a/src/sensor.hpp b/src/sensor.hpp
index 92ff02c..0e6c2c0 100644
--- a/src/sensor.hpp
+++ b/src/sensor.hpp
@@ -40,7 +40,7 @@
   private:
     static std::optional<double> readValue(const ValueVariant& v);
     static void signalProc(const std::weak_ptr<Sensor>& weakSelf,
-                           sdbusplus::message::message&);
+                           sdbusplus::message_t&);
 
     void async_read();
     void async_read(std::shared_ptr<utils::UniqueCall::Lock>);
diff --git a/tests/src/test_report.cpp b/tests/src/test_report.cpp
index 14239a9..8be6397 100644
--- a/tests/src/test_report.cpp
+++ b/tests/src/test_report.cpp
@@ -1093,7 +1093,7 @@
         initMetricMocks(defaultParams().metricParameters());
     }
 
-    void monitorProc(sdbusplus::message::message& msg)
+    void monitorProc(sdbusplus::message_t& msg)
     {
         std::string iface;
         std::vector<std::pair<std::string, std::variant<Readings>>>
