diff --git a/src/app/MessageDef/AttributeStatusIBs.cpp b/src/app/MessageDef/AttributeStatusIBs.cpp
index 795c280..88484fd 100644
--- a/src/app/MessageDef/AttributeStatusIBs.cpp
+++ b/src/app/MessageDef/AttributeStatusIBs.cpp
@@ -47,8 +47,7 @@
 #if CHIP_CONFIG_IM_PRETTY_PRINT
 CHIP_ERROR AttributeStatusIBs::Parser::PrettyPrint() const
 {
-    CHIP_ERROR err            = CHIP_NO_ERROR;
-    size_t NumAttributeStatus = 0;
+    CHIP_ERROR err = CHIP_NO_ERROR;
     TLV::TLVReader reader;
 
     PRETTY_PRINT("AttributeStatusIBs =");
@@ -68,8 +67,6 @@
             ReturnErrorOnFailure(status.PrettyPrint());
             PRETTY_PRINT_DECDEPTH();
         }
-
-        ++NumAttributeStatus;
     }
 
     PRETTY_PRINT("],");
diff --git a/src/app/MessageDef/EventPathIBs.cpp b/src/app/MessageDef/EventPathIBs.cpp
index 40736ba..0a6277e 100644
--- a/src/app/MessageDef/EventPathIBs.cpp
+++ b/src/app/MessageDef/EventPathIBs.cpp
@@ -32,7 +32,6 @@
 CHIP_ERROR EventPathIBs::Parser::PrettyPrint() const
 {
     CHIP_ERROR err = CHIP_NO_ERROR;
-    size_t NumPath = 0;
     TLV::TLVReader reader;
 
     PRETTY_PRINT("EventPathIBs =");
@@ -54,8 +53,6 @@
             ReturnErrorOnFailure(path.PrettyPrint());
             PRETTY_PRINT_DECDEPTH();
         }
-
-        ++NumPath;
     }
 
     PRETTY_PRINT("],");
diff --git a/src/app/clusters/groups-server/groups-server.cpp b/src/app/clusters/groups-server/groups-server.cpp
index 0ccf5c4..523fea8 100644
--- a/src/app/clusters/groups-server/groups-server.cpp
+++ b/src/app/clusters/groups-server/groups-server.cpp
@@ -211,7 +211,6 @@
             {
                 GroupDataProvider::GroupEndpoint mapping;
                 size_t requestedCount = 0;
-                size_t matchCount     = 0;
                 ReturnErrorOnFailure(mCommandData.groupList.ComputeSize(&requestedCount));
 
                 if (0 == requestedCount)
@@ -223,7 +222,6 @@
                         if (mapping.endpoint_id == mEndpoint)
                         {
                             ReturnErrorOnFailure(app::DataModel::Encode(writer, TLV::AnonymousTag(), mapping.group_id));
-                            matchCount++;
                             ChipLogDetail(Zcl, " 0x%02x", mapping.group_id);
                         }
                     }
@@ -238,7 +236,6 @@
                             if (mapping.endpoint_id == mEndpoint && mapping.group_id == iter.GetValue())
                             {
                                 ReturnErrorOnFailure(app::DataModel::Encode(writer, TLV::AnonymousTag(), mapping.group_id));
-                                matchCount++;
                                 ChipLogDetail(Zcl, " 0x%02x", mapping.group_id);
                                 break;
                             }
