diff --git a/transporthandler.cpp b/transporthandler.cpp
index c9a7492..d99c754 100644
--- a/transporthandler.cpp
+++ b/transporthandler.cpp
@@ -1420,8 +1420,16 @@
         return responseInvalidFieldRequest();
     }
 
+    auto channelName = ipmi::getChannelName(channel);
+    if (channelName.empty())
+    {
+        lg2::error("Channel name does not exist for channel {CHANNEL}",
+                   "CHANNEL", channel);
+        return responseInvalidFieldRequest();
+    }
+
     std::string solService{};
-    std::string solPathWitheEthName = solPath + ipmi::getChannelName(channel);
+    std::string solPathWitheEthName = solPath + channelName;
 
     if (ipmi::getService(ctx, solInterface, solPathWitheEthName, solService))
     {
@@ -1597,8 +1605,16 @@
         return responseInvalidFieldRequest();
     }
 
+    auto channelName = ipmi::getChannelName(channel);
+    if (channelName.empty())
+    {
+        lg2::error("Channel name does not exist for channel {CHANNEL}",
+                   "CHANNEL", channel);
+        return responseInvalidFieldRequest();
+    }
+
     std::string solService{};
-    std::string solPathWitheEthName = solPath + ipmi::getChannelName(channel);
+    std::string solPathWitheEthName = solPath + channelName;
 
     if (ipmi::getService(ctx, solInterface, solPathWitheEthName, solService))
     {
