diff --git a/watchdog/ffdc_file.cpp b/watchdog/ffdc_file.cpp
index 6aa4a00..62cb1e5 100644
--- a/watchdog/ffdc_file.cpp
+++ b/watchdog/ffdc_file.cpp
@@ -41,8 +41,8 @@
     int fd = open(tempFile.getPath().c_str(), O_RDWR);
     if (fd == -1)
     {
-        throw std::runtime_error{std::string{"Unable to open FFDC file: "} +
-                                 strerror(errno)};
+        throw std::runtime_error{
+            std::string{"Unable to open FFDC file: "} + strerror(errno)};
     }
 
     ssize_t rc = write(fd, calloutData.c_str(), calloutData.size());
diff --git a/watchdog/utils.cpp b/watchdog/utils.cpp
index a66fc8e..ae4a80b 100644
--- a/watchdog/utils.cpp
+++ b/watchdog/utils.cpp
@@ -16,8 +16,8 @@
 TemporaryFile::TemporaryFile()
 {
     // Build template path required by mkstemp()
-    std::string templatePath = fs::temp_directory_path() /
-                               "openpower-debug-collector-XXXXXX";
+    std::string templatePath =
+        fs::temp_directory_path() / "openpower-debug-collector-XXXXXX";
 
     // Generate unique file name, create file, and open it.  The XXXXXX
     // characters are replaced by mkstemp() to make the file name unique.
diff --git a/watchdog/watchdog_dbus.cpp b/watchdog/watchdog_dbus.cpp
index 87aa3f9..c3a797d 100644
--- a/watchdog/watchdog_dbus.cpp
+++ b/watchdog/watchdog_dbus.cpp
@@ -51,16 +51,16 @@
             if (extended == "")
             {
                 // return the method
-                method = bus.new_method_call(service.c_str(), path.c_str(),
-                                             interface.c_str(),
-                                             function.c_str());
+                method =
+                    bus.new_method_call(service.c_str(), path.c_str(),
+                                        interface.c_str(), function.c_str());
             }
             else
             {
                 // return extended method
-                method = bus.new_method_call(service.c_str(), path.c_str(),
-                                             extended.c_str(),
-                                             function.c_str());
+                method =
+                    bus.new_method_call(service.c_str(), path.c_str(),
+                                        extended.c_str(), function.c_str());
             }
 
             rc = RC_SUCCESS;
diff --git a/watchdog/watchdog_handler.cpp b/watchdog/watchdog_handler.cpp
index ec58402..2a2b245 100644
--- a/watchdog/watchdog_handler.cpp
+++ b/watchdog/watchdog_handler.cpp
@@ -81,8 +81,8 @@
             sdbusplus::bus::match::rules::propertiesChanged(
                 path.c_str(), matchInterface.c_str()),
             [&](auto& msg) {
-        return dumpStatusChanged(msg, path, progressStatus);
-    });
+                return dumpStatusChanged(msg, path, progressStatus);
+            });
 
     // wait for dump status to be completed (complete == true)
     // or until timeout interval
