diff --git a/wait-vpd-parser/src/prime_inventory.cpp b/wait-vpd-parser/src/prime_inventory.cpp
index 409087a..8e3a53e 100644
--- a/wait-vpd-parser/src/prime_inventory.cpp
+++ b/wait-vpd-parser/src/prime_inventory.cpp
@@ -289,7 +289,19 @@
                     std::string l_value =
                         vpd::vpdSpecificUtility::getExpandedLocationCode(
                             l_propValuePair.value().get<std::string>(),
-                            i_parsedVpdMap);
+                            i_parsedVpdMap, l_errCode);
+
+                    if (l_errCode)
+                    {
+                        m_logger->logMessage(
+                            "Failed to get expanded location code for location code - " +
+                            l_propValuePair.value().get<std::string>() +
+                            " ,error : " +
+                            vpd::commonUtility::getErrCodeMsg(l_errCode));
+
+                        l_errCode = 0;
+                    }
+
                     l_propertyMap.emplace(l_property, l_value);
 
                     auto l_locCodeProperty = l_propertyMap;
@@ -303,6 +315,8 @@
                         m_logger->logMessage(
                             "Failed to insert value into map, error : " +
                             vpd::commonUtility::getErrCodeMsg(l_errCode));
+
+                        l_errCode = 0;
                     }
                 }
                 else
@@ -340,8 +354,6 @@
                 const std::string& l_encoding =
                     l_propValuePair.value().value("encoding", "");
 
-                uint16_t l_errCode = 0;
-
                 if (auto l_ipzVpdMap =
                         std::get_if<vpd::types::IPZVpdMap>(&i_parsedVpdMap))
                 {
@@ -359,6 +371,8 @@
                                 "Failed to get encoded keyword value for : " +
                                 l_keyword + ", error : " +
                                 vpd::commonUtility::getErrCodeMsg(l_errCode));
+
+                            l_errCode = 0;
                         }
 
                         l_propertyMap.emplace(l_property, l_encoded);
@@ -387,6 +401,8 @@
                                     l_keyword + ", error : " +
                                     vpd::commonUtility::getErrCodeMsg(
                                         l_errCode));
+
+                                l_errCode = 0;
                             }
 
                             l_propertyMap.emplace(l_property, l_encodedValue);
@@ -407,6 +423,8 @@
                                     l_keyword + ", error : " +
                                     vpd::commonUtility::getErrCodeMsg(
                                         l_errCode));
+
+                                l_errCode = 0;
                             }
 
                             l_propertyMap.emplace(l_property, l_encodedValue);
@@ -426,7 +444,6 @@
                 }
             }
         }
-        l_errCode = 0;
         vpd::vpdSpecificUtility::insertOrMerge(io_interfaceMap, l_interface,
                                                move(l_propertyMap), l_errCode);
 
@@ -434,6 +451,8 @@
         {
             m_logger->logMessage("Failed to insert value into map, error : " +
                                  vpd::commonUtility::getErrCodeMsg(l_errCode));
+
+            l_errCode = 0;
         }
     }
 }
