diff --git a/requester/handler.hpp b/requester/handler.hpp
index 4bbd170..33d9cb9 100644
--- a/requester/handler.hpp
+++ b/requester/handler.hpp
@@ -407,8 +407,8 @@
      *          Return [PLDM_ERROR_NOT_READY, nullptr, 0] if timed out.
      *          Return [PLDM_SUCCESS, resp, len] if succeeded
      */
-    stdexec::sender_of<stdexec::set_value_t(SendRecvCoResp)> auto
-        sendRecvMsg(mctp_eid_t eid, pldm::Request&& request);
+    stdexec::sender_of<stdexec::set_value_t(SendRecvCoResp)> auto sendRecvMsg(
+        mctp_eid_t eid, pldm::Request&& request);
 
   private:
     PldmTransport* pldmTransport; //!< PLDM transport object
diff --git a/requester/test/handler_test.cpp b/requester/test/handler_test.cpp
index 327817c..86e2717 100644
--- a/requester/test/handler_test.cpp
+++ b/requester/test/handler_test.cpp
@@ -236,9 +236,9 @@
 {
     struct _
     {
-        static exec::task<uint8_t>
-            getTIDTask(Handler<MockRequest>& handler, mctp_eid_t eid,
-                       uint8_t instanceId, uint8_t& tid)
+        static exec::task<uint8_t> getTIDTask(Handler<MockRequest>& handler,
+                                              mctp_eid_t eid,
+                                              uint8_t instanceId, uint8_t& tid)
         {
             pldm::Request request(sizeof(pldm_msg_hdr), 0);
             auto requestMsg = reinterpret_cast<pldm_msg*>(request.data());
