diff --git a/vpd-manager/src/worker.cpp b/vpd-manager/src/worker.cpp
index 9c020c5..b04c431 100644
--- a/vpd-manager/src/worker.cpp
+++ b/vpd-manager/src/worker.cpp
@@ -611,6 +611,8 @@
                 const std::string& encoding =
                     propValuePair.value().value("encoding", "");
 
+                uint16_t l_errCode = 0;
+
                 if (auto ipzVpdMap =
                         std::get_if<types::IPZVpdMap>(&parsedVpdMap))
                 {
@@ -619,7 +621,18 @@
                         (*ipzVpdMap).at(record).count(keyword))
                     {
                         auto encoded = vpdSpecificUtility::encodeKeyword(
-                            ((*ipzVpdMap).at(record).at(keyword)), encoding);
+                            ((*ipzVpdMap).at(record).at(keyword)), encoding,
+                            l_errCode);
+
+                        if (l_errCode)
+                        {
+                            logging::logMessage(
+                                std::string(
+                                    "Failed to get encoded keyword value for : ") +
+                                keyword + std::string(", error : ") +
+                                commonUtility::getErrCodeMsg(l_errCode));
+                        }
+
                         propertyMap.emplace(property, encoded);
                     }
                 }
@@ -635,7 +648,16 @@
                                 vpdSpecificUtility::encodeKeyword(
                                     std::string((*kwValue).begin(),
                                                 (*kwValue).end()),
-                                    encoding);
+                                    encoding, l_errCode);
+
+                            if (l_errCode)
+                            {
+                                logging::logMessage(
+                                    std::string(
+                                        "Failed to get encoded keyword value for : ") +
+                                    keyword + std::string(", error : ") +
+                                    commonUtility::getErrCodeMsg(l_errCode));
+                            }
 
                             propertyMap.emplace(property, encodedValue);
                         }
@@ -646,7 +668,15 @@
                                 vpdSpecificUtility::encodeKeyword(
                                     std::string((*kwValue).begin(),
                                                 (*kwValue).end()),
-                                    encoding);
+                                    encoding, l_errCode);
+
+                            if (l_errCode)
+                            {
+                                logging::logMessage(
+                                    "Failed to get encoded keyword value for : " +
+                                    keyword + ", error : " +
+                                    commonUtility::getErrCodeMsg(l_errCode));
+                            }
 
                             propertyMap.emplace(property, encodedValue);
                         }
