diff --git a/conanfile.txt b/conanfile.txt
index e7293e9f271410bb19ab8b9e69b037f501eab72e..60d039725f2aff26364dc932d6fedd4aa22bf1ea 100644
--- a/conanfile.txt
+++ b/conanfile.txt
@@ -3,7 +3,7 @@ gtest/1.11.0
 fmt/8.1.1
 h5cpp/9486a26@ess-dmsc/stable
 zlib/1.2.12
-librdkafka/2.0.2
+librdkafka/2.8.0
 nlohmann_json/3.10.5
 streaming-data-types/13dd32d@ess-dmsc/stable
 cli11/2.2.0
diff --git a/tests/helpers/MockMessage.h b/tests/helpers/MockMessage.h
index 9b87584a4c1d7f51ee24debf5161c239e78d248d..c15e51dd66c4b03129d71b94ca5d4cce45b0838f 100644
--- a/tests/helpers/MockMessage.h
+++ b/tests/helpers/MockMessage.h
@@ -11,25 +11,30 @@
 #include <librdkafka/rdkafkacpp.h>
 #include <trompeloeil.hpp>
 
+// cannot use trmpeloeil::mock_interface<T> since headers() is overloaded
+// so ensure override is included for useful compiler warnings and
+// ensure to mock all methods in abstract base
 class MockMessage : public RdKafka::Message {
 public:
-  MAKE_CONST_MOCK0(errstr, std::string());
-  MAKE_CONST_MOCK0(err, RdKafka::ErrorCode());
-  MAKE_CONST_MOCK0(topic, RdKafka::Topic *());
-  MAKE_CONST_MOCK0(topic_name, std::string());
-  MAKE_CONST_MOCK0(partition, int32_t());
-  MAKE_CONST_MOCK0(payload, void *());
-  MAKE_CONST_MOCK0(len, size_t());
-  MAKE_CONST_MOCK0(key, const std::string *());
-  MAKE_CONST_MOCK0(key_pointer, const void *());
-  MAKE_CONST_MOCK0(key_len, size_t());
-  MAKE_CONST_MOCK0(offset, int64_t());
-  MAKE_CONST_MOCK0(timestamp, RdKafka::MessageTimestamp());
-  MAKE_CONST_MOCK0(msg_opaque, void *());
-  MAKE_CONST_MOCK0(latency, int64_t());
-  MAKE_CONST_MOCK0(status, RdKafka::Message::Status());
-  MAKE_CONST_MOCK0(broker_id, int32_t());
-  MAKE_MOCK0(headers, RdKafka::Headers *());
-  MAKE_MOCK1(headers, RdKafka::Headers *(RdKafka::ErrorCode *));
-  MAKE_MOCK0(c_ptr, rd_kafka_message_s *());
+  MAKE_CONST_MOCK0(errstr, std::string(), override);
+  MAKE_CONST_MOCK0(err, RdKafka::ErrorCode(), override);
+  MAKE_CONST_MOCK0(topic, RdKafka::Topic *(), override);
+  MAKE_CONST_MOCK0(topic_name, std::string(), override);
+  MAKE_CONST_MOCK0(partition, int32_t(), override);
+  MAKE_CONST_MOCK0(payload, void *(), override);
+  MAKE_CONST_MOCK0(len, size_t(), override);
+  MAKE_CONST_MOCK0(key, const std::string *(), override);
+  MAKE_CONST_MOCK0(key_pointer, const void *(), override);
+  MAKE_CONST_MOCK0(key_len, size_t(), override);
+  MAKE_CONST_MOCK0(offset, int64_t(), override);
+  MAKE_CONST_MOCK0(timestamp, RdKafka::MessageTimestamp(), override);
+  MAKE_CONST_MOCK0(msg_opaque, void *(), override);
+  MAKE_CONST_MOCK0(latency, int64_t(), override);
+  MAKE_CONST_MOCK0(status, RdKafka::Message::Status(), override);
+  MAKE_CONST_MOCK0(broker_id, int32_t(), override);
+  MAKE_CONST_MOCK0(leader_epoch, int32_t(), override);
+  MAKE_MOCK0(headers, RdKafka::Headers *(), override);
+  MAKE_MOCK1(headers, RdKafka::Headers *(RdKafka::ErrorCode *), override);
+  MAKE_MOCK0(c_ptr, rd_kafka_message_s *(), override);
+  MAKE_MOCK0(offset_store, RdKafka::Error *(), override);
 };