diff --git a/vpd-manager/include/constants.hpp b/vpd-manager/include/constants.hpp
index 5faf8da..7f23070 100644
--- a/vpd-manager/include/constants.hpp
+++ b/vpd-manager/include/constants.hpp
@@ -90,6 +90,7 @@
 static constexpr auto VALUE_6 = 6;
 static constexpr auto VALUE_7 = 7;
 static constexpr auto VALUE_8 = 8;
+static constexpr auto VALUE_21 = 21;
 
 static constexpr auto MASK_BYTE_BITS_01 = 0x03;
 static constexpr auto MASK_BYTE_BITS_345 = 0x38;
@@ -120,6 +121,8 @@
 constexpr auto vsysInf = "com.ibm.ipzvpd.VSYS";
 constexpr auto utilInf = "com.ibm.ipzvpd.UTIL";
 constexpr auto vcenInf = "com.ibm.ipzvpd.VCEN";
+constexpr auto viniInf = "com.ibm.ipzvpd.VINI";
+constexpr auto vsbpInf = "com.ibm.ipzvpd.VSBP";
 constexpr auto kwdCCIN = "CC";
 constexpr auto kwdRG = "RG";
 constexpr auto kwdAMM = "D0";
@@ -128,6 +131,8 @@
 constexpr auto kwdFC = "FC";
 constexpr auto kwdTM = "TM";
 constexpr auto kwdSE = "SE";
+constexpr auto kwdHW = "HW";
+constexpr auto kwdIM = "IM";
 constexpr auto recVSYS = "VSYS";
 constexpr auto recVCEN = "VCEN";
 constexpr auto locationCodeInf = "com.ibm.ipzvpd.Location";
diff --git a/vpd-manager/include/utility/vpd_specific_utility.hpp b/vpd-manager/include/utility/vpd_specific_utility.hpp
index d6b92fd..9e679a7 100644
--- a/vpd-manager/include/utility/vpd_specific_utility.hpp
+++ b/vpd-manager/include/utility/vpd_specific_utility.hpp
@@ -552,5 +552,48 @@
                             " with error: " + std::string(l_ex.what()));
     }
 }
+
+/**
+ * @brief API to detect pass1 planar type.
+ *
+ * Based on HW version and IM keyword, This API detects is it is a pass1 planar
+ * or not.
+ *
+ * @return True if pass 1 planar, false otherwise.
+ */
+inline bool isPass1Planar()
+{
+    auto l_retVal = dbusUtility::readDbusProperty(
+        constants::pimServiceName, constants::systemVpdInvPath,
+        constants::viniInf, constants::kwdHW);
+
+    auto l_hwVer = std::get_if<types::BinaryVector>(&l_retVal);
+
+    l_retVal = dbusUtility::readDbusProperty(
+        constants::pimServiceName, constants::systemInvPath, constants::vsbpInf,
+        constants::kwdIM);
+
+    auto l_imValue = std::get_if<types::BinaryVector>(&l_retVal);
+
+    if (l_hwVer && l_imValue)
+    {
+        types::BinaryVector everest{80, 00, 48, 00};
+        types::BinaryVector fuji{96, 00, 32, 00};
+
+        if (((*l_imValue) == everest) || ((*l_imValue) == fuji))
+        {
+            if ((*l_hwVer).at(1) < constants::VALUE_21)
+            {
+                return true;
+            }
+        }
+        else if ((*l_hwVer).at(1) < constants::VALUE_2)
+        {
+            return true;
+        }
+    }
+
+    return false;
+}
 } // namespace vpdSpecificUtility
 } // namespace vpd
diff --git a/vpd-manager/src/worker.cpp b/vpd-manager/src/worker.cpp
index ff92264..d1bd00c 100644
--- a/vpd-manager/src/worker.cpp
+++ b/vpd-manager/src/worker.cpp
@@ -1449,6 +1449,24 @@
         // based on status of execution.
         if (typeid(ex) == std::type_index(typeid(DataException)))
         {
+            // In case of pass1 planar, VPD can be corrupted on PCIe cards. Skip
+            // logging error for these cases.
+            if (vpdSpecificUtility::isPass1Planar())
+            {
+                const std::string& l_invPathLeafValue =
+                    sdbusplus::message::object_path(
+                        jsonUtility::getInventoryObjPathFromJson(m_parsedJson,
+                                                                 i_vpdFilePath))
+                        .filename();
+
+                if ((l_invPathLeafValue.find("pcie_card", 0) !=
+                     std::string::npos))
+                {
+                    // skip logging any PEL for PCIe cards on pass 1 planar.
+                    return std::make_tuple(false, i_vpdFilePath);
+                }
+            }
+
             // TODO: Add custom handling
             logging::logMessage(ex.what());
         }
