diff --git a/control/json/triggers/init.cpp b/control/json/triggers/init.cpp
index 32277d7..bd557d7 100644
--- a/control/json/triggers/init.cpp
+++ b/control/json/triggers/init.cpp
@@ -159,10 +159,9 @@
         if (!groups.empty() && handler == methods.end())
         {
             // Construct list of available methods
-            auto availMethods = std::accumulate(std::next(methods.begin()),
-                                                methods.end(),
-                                                methods.begin()->first,
-                                                [](auto list, auto method) {
+            auto availMethods = std::accumulate(
+                std::next(methods.begin()), methods.end(),
+                methods.begin()->first, [](auto list, auto method) {
                 return std::move(list) + ", " + method.first;
             });
             auto msg =
diff --git a/control/json/triggers/signal.cpp b/control/json/triggers/signal.cpp
index 5e78d6e..537ef50 100644
--- a/control/json/triggers/signal.cpp
+++ b/control/json/triggers/signal.cpp
@@ -249,11 +249,11 @@
     if (subscriber == signals.end())
     {
         // Construct list of available signals
-        auto availSignals = std::accumulate(
-            std::next(signals.begin()), signals.end(), signals.begin()->first,
-            [](auto list, auto signal) {
+        auto availSignals =
+            std::accumulate(std::next(signals.begin()), signals.end(),
+                            signals.begin()->first, [](auto list, auto signal) {
             return std::move(list) + ", " + signal.first;
-            });
+        });
         auto msg =
             std::format("Event '{}' requires a supported signal given to be "
                         "triggered by signal, available signals: {}",
