diff --git a/test/utest_json_utility.cpp b/test/utest_json_utility.cpp
index 2fea6fe..ceccb5f 100644
--- a/test/utest_json_utility.cpp
+++ b/test/utest_json_utility.cpp
@@ -24,7 +24,6 @@
             "], error : " + commonUtility::getErrCodeMsg(l_errCode));
     }
 
-    l_errCode = 0;
     const bool l_result =
         jsonUtility::isFruPowerOffOnly(l_parsedJson, l_vpdPath, l_errCode);
 
@@ -53,7 +52,6 @@
             "], error : " + commonUtility::getErrCodeMsg(l_errCode));
     }
 
-    l_errCode = 0;
     const bool l_result =
         jsonUtility::isFruPowerOffOnly(l_parsedJson, l_vpdPath, l_errCode);
 
diff --git a/vpd-manager/oem-handler/ibm_handler.cpp b/vpd-manager/oem-handler/ibm_handler.cpp
index 7d0c4d7..62199f8 100644
--- a/vpd-manager/oem-handler/ibm_handler.cpp
+++ b/vpd-manager/oem-handler/ibm_handler.cpp
@@ -37,7 +37,6 @@
         m_logger->logMessage(
             "Error while trying to read VPD collection mode: " +
             commonUtility::getErrCodeMsg(l_errCode));
-        l_errCode = 0;
     }
 
     if (dbusUtility::isChassisPowerOn())
@@ -218,8 +217,6 @@
         // check if the FRU needs CCIN check before updating PN.
         if (l_recJson.contains("CCIN"))
         {
-            l_errCode = 0;
-
             const auto& l_ccinFromDbus =
                 vpdSpecificUtility::getCcinFromDbus(l_inventoryPath, l_errCode);
 
diff --git a/vpd-manager/src/manager.cpp b/vpd-manager/src/manager.cpp
index 548f9ba..809ff53 100644
--- a/vpd-manager/src/manager.cpp
+++ b/vpd-manager/src/manager.cpp
@@ -259,7 +259,6 @@
         // update keyword in inherited FRUs
         if (l_rc != constants::FAILURE)
         {
-            l_errCode = 0;
             vpdSpecificUtility::updateKwdOnInheritedFrus(
                 l_fruPath, l_writeParams, l_sysCfgJsonObj, l_errCode);
 
@@ -278,7 +277,6 @@
         // update common interface(s) properties
         if (l_rc != constants::FAILURE)
         {
-            l_errCode = 0;
             vpdSpecificUtility::updateCiPropertyOfInheritedFrus(
                 l_fruPath, l_writeParams, l_sysCfgJsonObj, l_errCode);
 
@@ -290,7 +288,6 @@
             }
         }
 
-        l_errCode = 0;
         l_logger->logMessage(
             "VPD write " +
                 std::string(
diff --git a/vpd-manager/src/parser.cpp b/vpd-manager/src/parser.cpp
index 20c6bd2..ba8a9d4 100644
--- a/vpd-manager/src/parser.cpp
+++ b/vpd-manager/src/parser.cpp
@@ -202,7 +202,6 @@
             }
 
             // Get D-bus name for the given keyword
-            l_errCode = 0;
             l_propertyName = vpdSpecificUtility::getDbusPropNameForGivenKw(
                 l_propertyName, l_errCode);
 
diff --git a/vpd-manager/src/worker.cpp b/vpd-manager/src/worker.cpp
index 48d4dc8..a712775 100644
--- a/vpd-manager/src/worker.cpp
+++ b/vpd-manager/src/worker.cpp
@@ -588,8 +588,6 @@
                             propValuePair.value().get<std::string>() +
                             " ,error : " +
                             commonUtility::getErrCodeMsg(l_errCode));
-
-                        l_errCode = 0;
                     }
 
                     propertyMap.emplace(property, value);
@@ -605,8 +603,6 @@
                         logging::logMessage(
                             "Failed to insert value into map, error : " +
                             commonUtility::getErrCodeMsg(l_errCode));
-
-                        l_errCode = 0;
                     }
                 }
                 else
@@ -662,8 +658,6 @@
                                     "Failed to get encoded keyword value for : ") +
                                 keyword + std::string(", error : ") +
                                 commonUtility::getErrCodeMsg(l_errCode));
-
-                            l_errCode = 0;
                         }
 
                         propertyMap.emplace(property, encoded);
@@ -690,8 +684,6 @@
                                         "Failed to get encoded keyword value for : ") +
                                     keyword + std::string(", error : ") +
                                     commonUtility::getErrCodeMsg(l_errCode));
-
-                                l_errCode = 0;
                             }
 
                             propertyMap.emplace(property, encodedValue);
@@ -711,8 +703,6 @@
                                     "Failed to get encoded keyword value for : " +
                                     keyword + ", error : " +
                                     commonUtility::getErrCodeMsg(l_errCode));
-
-                                l_errCode = 0;
                             }
 
                             propertyMap.emplace(property, encodedValue);
@@ -738,8 +728,6 @@
         {
             logging::logMessage("Failed to insert value into map, error : " +
                                 commonUtility::getErrCodeMsg(l_errCode));
-
-            l_errCode = 0;
         }
     }
 }
@@ -1187,6 +1175,7 @@
                               const std::string& i_flagToProcess,
                               uint16_t& i_errCode)
 {
+    i_errCode = 0;
     if (i_vpdFilePath.empty() || i_flagToProcess.empty())
     {
         i_errCode = error_code::INVALID_INPUT_PARAMETER;
@@ -1285,7 +1274,6 @@
         }
     }
 
-    l_errCode = 0;
     if (!jsonUtility::executeBaseAction(m_parsedJson, "postAction",
                                         i_vpdFruPath, i_flagToProcess,
                                         l_errCode))
@@ -1319,7 +1307,6 @@
         if (jsonUtility::isActionRequired(m_parsedJson, i_vpdFilePath,
                                           "preAction", "collection", l_errCode))
         {
-            l_errCode = 0;
             isPreActionRequired = true;
             if (!processPreAction(i_vpdFilePath, "collection", l_errCode))
             {
@@ -1367,8 +1354,6 @@
         // any post action in the flow of collection.
         // Note: Don't change the order, post action needs to be processed only
         // after collection for FRU is successfully done.
-        l_errCode = 0;
-
         if (jsonUtility::isActionRequired(m_parsedJson, i_vpdFilePath,
                                           "postAction", "collection",
                                           l_errCode))
@@ -1583,7 +1568,6 @@
                 "], error : " + commonUtility::getErrCodeMsg(l_errCode));
         }
 
-        l_errCode = 0;
         std::string l_invPath = jsonUtility::getInventoryObjPathFromJson(
             m_parsedJson, i_vpdFilePath, l_errCode);
 
@@ -1802,7 +1786,6 @@
                 for (const auto& [l_objectPath, l_serviceInterfaceMap] :
                      l_subTreeMap)
                 {
-                    l_errCode = 0;
                     types::InterfaceMap l_interfaceMap;
                     vpdSpecificUtility::resetDataUnderPIM(
                         l_objectPath, l_interfaceMap, l_errCode);
@@ -1819,7 +1802,6 @@
                                         std::move(l_interfaceMap));
                 }
 
-                l_errCode = 0;
                 types::InterfaceMap l_interfaceMap;
                 vpdSpecificUtility::resetDataUnderPIM(
                     i_dbusObjPath, l_interfaceMap, l_errCode);
@@ -1838,8 +1820,6 @@
                     throw std::runtime_error("Call to PIM failed.");
                 }
 
-                l_errCode = 0;
-
                 if (jsonUtility::isActionRequired(m_parsedJson, l_fruPath,
                                                   "postAction", "deletion",
                                                   l_errCode))
@@ -2106,7 +2086,6 @@
                     "], error : " + commonUtility::getErrCodeMsg(l_errCode));
             }
 
-            l_errCode = 0;
             bool isFruReplaceableAtRuntime =
                 jsonUtility::isFruReplaceableAtRuntime(m_parsedJson, l_fruPath,
                                                        l_errCode);
diff --git a/wait-vpd-parser/src/prime_inventory.cpp b/wait-vpd-parser/src/prime_inventory.cpp
index 8e3a53e..d3fb332 100644
--- a/wait-vpd-parser/src/prime_inventory.cpp
+++ b/wait-vpd-parser/src/prime_inventory.cpp
@@ -239,7 +239,6 @@
     vpd::types::PropertyMap l_fruCollectionProperty = {
         {"Status", vpd::constants::vpdCollectionNotStarted}};
 
-    l_errCode = 0;
     vpd::vpdSpecificUtility::insertOrMerge(
         l_interfaces, vpd::constants::vpdCollectionInterface,
         std::move(l_fruCollectionProperty), l_errCode);
@@ -298,8 +297,6 @@
                             l_propValuePair.value().get<std::string>() +
                             " ,error : " +
                             vpd::commonUtility::getErrCodeMsg(l_errCode));
-
-                        l_errCode = 0;
                     }
 
                     l_propertyMap.emplace(l_property, l_value);
@@ -315,8 +312,6 @@
                         m_logger->logMessage(
                             "Failed to insert value into map, error : " +
                             vpd::commonUtility::getErrCodeMsg(l_errCode));
-
-                        l_errCode = 0;
                     }
                 }
                 else
@@ -371,8 +366,6 @@
                                 "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);
@@ -401,8 +394,6 @@
                                     l_keyword + ", error : " +
                                     vpd::commonUtility::getErrCodeMsg(
                                         l_errCode));
-
-                                l_errCode = 0;
                             }
 
                             l_propertyMap.emplace(l_property, l_encodedValue);
@@ -423,8 +414,6 @@
                                     l_keyword + ", error : " +
                                     vpd::commonUtility::getErrCodeMsg(
                                         l_errCode));
-
-                                l_errCode = 0;
                             }
 
                             l_propertyMap.emplace(l_property, l_encodedValue);
@@ -451,8 +440,6 @@
         {
             m_logger->logMessage("Failed to insert value into map, error : " +
                                  vpd::commonUtility::getErrCodeMsg(l_errCode));
-
-            l_errCode = 0;
         }
     }
 }
