diff --git a/user_channel/channel_mgmt.cpp b/user_channel/channel_mgmt.cpp
index 8594d65..d4757df 100644
--- a/user_channel/channel_mgmt.cpp
+++ b/user_channel/channel_mgmt.cpp
@@ -150,7 +150,8 @@
 {
     if (!isValidChannel(chNum))
     {
-        lg2::error("Invalid channel number: {CHANNEL_ID}", "CHANNEL_ID", chNum);
+        lg2::error("Get channel name - Invalid channel number: {CHANNEL_ID}",
+                   "CHANNEL_ID", chNum);
         throw std::invalid_argument("Invalid channel number");
     }
 
@@ -377,11 +378,6 @@
         return false;
     }
 
-    if (channelData[chNum].isChValid == false)
-    {
-        lg2::debug("Channel is not valid");
-    }
-
     return channelData[chNum].isChValid;
 }
 
@@ -431,7 +427,8 @@
 {
     if (!isValidChannel(chNum))
     {
-        lg2::debug("Invalid channel");
+        lg2::debug("Get channel info - Invalid channel: {CHANNEL}", "CHANNEL",
+                   chNum);
         return ccInvalidFieldRequest;
     }
 
@@ -446,7 +443,8 @@
 {
     if (!isValidChannel(chNum))
     {
-        lg2::debug("Invalid channel");
+        lg2::debug("Get channel access data - Invalid channel: {CHANNEL}",
+                   "CHANNEL", chNum);
         return ccInvalidFieldRequest;
     }
 
@@ -475,7 +473,8 @@
 {
     if (!isValidChannel(chNum))
     {
-        lg2::debug("Invalid channel");
+        lg2::debug("Set channel info - Invalid channel: {CHANNEL}", "CHANNEL",
+                   chNum);
         return ccInvalidFieldRequest;
     }
 
@@ -545,7 +544,9 @@
 {
     if (!isValidChannel(chNum))
     {
-        lg2::debug("Invalid channel");
+        lg2::debug(
+            "Get channel access persist data - Invalid channel: {CHANNEL}",
+            "CHANNEL", chNum);
         return ccInvalidFieldRequest;
     }
 
@@ -574,7 +575,9 @@
 {
     if (!isValidChannel(chNum))
     {
-        lg2::debug("Invalid channel");
+        lg2::debug(
+            "Set channel access persist data - Invalid channel: {CHANNEL}",
+            "CHANNEL", chNum);
         return ccInvalidFieldRequest;
     }
 
@@ -665,7 +668,9 @@
 {
     if (!isValidChannel(chNum))
     {
-        lg2::debug("Invalid channel");
+        lg2::debug(
+            "Get channel auth type supported - Invalid channel: {CHANNEL}",
+            "CHANNEL", chNum);
         return ccInvalidFieldRequest;
     }
 
@@ -678,7 +683,8 @@
 {
     if (!isValidChannel(chNum))
     {
-        lg2::debug("Invalid channel");
+        lg2::debug("Get channel enabled auth type - Invalid channel: {CHANNEL}",
+                   "CHANNEL", chNum);
         return ccInvalidFieldRequest;
     }
 
