diff --git a/pw_log_rpc/log_filter_service_test.cc b/pw_log_rpc/log_filter_service_test.cc
index 2c1606d..8e30d5c 100644
--- a/pw_log_rpc/log_filter_service_test.cc
+++ b/pw_log_rpc/log_filter_service_test.cc
@@ -38,7 +38,7 @@
 
  protected:
   FilterMap filter_map_;
-  static constexpr size_t kMaxFilterRules = 3;
+  static constexpr size_t kMaxFilterRules = 4;
   std::array<Filter::Rule, kMaxFilterRules> rules1_;
   std::array<Filter::Rule, kMaxFilterRules> rules2_;
   std::array<Filter::Rule, kMaxFilterRules> rules3_;
@@ -137,7 +137,7 @@
 }
 
 TEST_F(FilterServiceTest, SetFilterRules) {
-  const std::array<Filter::Rule, 4> new_rules{{
+  const std::array<Filter::Rule, kMaxFilterRules> new_rules{{
       {
           .action = Filter::Rule::Action::kKeep,
           .level_greater_than_or_equal = log::FilterRule::Level::DEBUG_LEVEL,
@@ -175,8 +175,9 @@
                          std::byte('R')},
       },
   }};
-  const Filter new_filter(filters_[0].id(),
-                          const_cast<std::array<Filter::Rule, 4>&>(new_rules));
+  const Filter new_filter(
+      filters_[0].id(),
+      const_cast<std::array<Filter::Rule, kMaxFilterRules>&>(new_rules));
 
   std::byte request_buffer[512];
   const auto request = EncodeFilterRequest(new_filter, request_buffer);
@@ -194,7 +195,7 @@
 }
 
 TEST_F(FilterServiceTest, SetFilterRulesWhenUsedByDrain) {
-  const std::array<Filter::Rule, 4> new_filter_rules{{
+  const std::array<Filter::Rule, kMaxFilterRules> new_filter_rules{{
       {
           .action = Filter::Rule::Action::kKeep,
           .level_greater_than_or_equal = log::FilterRule::Level::CRITICAL_LEVEL,
@@ -238,7 +239,8 @@
   }};
   Filter& filter = filters_[0];
   const Filter new_filter(
-      filter.id(), const_cast<std::array<Filter::Rule, 4>&>(new_filter_rules));
+      filter.id(),
+      const_cast<std::array<Filter::Rule, kMaxFilterRules>&>(new_filter_rules));
 
   std::byte request_buffer[256];
   const auto request = EncodeFilterRequest(new_filter, request_buffer);
@@ -266,7 +268,7 @@
   }
 
   // A new request for logs with a new filter updates filter.
-  const std::array<Filter::Rule, 4> second_filter_rules{{
+  const std::array<Filter::Rule, kMaxFilterRules> second_filter_rules{{
       {
           .action = Filter::Rule::Action::kKeep,
           .level_greater_than_or_equal = log::FilterRule::Level::DEBUG_LEVEL,
@@ -298,7 +300,8 @@
   }};
   const Filter second_filter(
       filter.id(),
-      const_cast<std::array<Filter::Rule, 4>&>(second_filter_rules));
+      const_cast<std::array<Filter::Rule, kMaxFilterRules>&>(
+          second_filter_rules));
 
   std::memset(request_buffer, 0, sizeof(request_buffer));
   const auto second_filter_request =
diff --git a/pw_log_rpc/log_service_test.cc b/pw_log_rpc/log_service_test.cc
index f77d5bc..a8296be 100644
--- a/pw_log_rpc/log_service_test.cc
+++ b/pw_log_rpc/log_service_test.cc
@@ -114,7 +114,7 @@
   multisink::MultiSink multisink_;
   RpcLogDrainMap drain_map_;
   std::array<std::byte, kMaxLogEntrySize> entry_encode_buffer_;
-  static constexpr size_t kMaxFilterRules = 3;
+  static constexpr size_t kMaxFilterRules = 4;
   std::array<Filter::Rule, kMaxFilterRules> rules1_;
   std::array<Filter::Rule, kMaxFilterRules> rules2_;
   std::array<Filter::Rule, kMaxFilterRules> rules3_;
