diff --git a/vpd-manager/src/manager.cpp b/vpd-manager/src/manager.cpp
index dd00d92..1e3f3d5 100644
--- a/vpd-manager/src/manager.cpp
+++ b/vpd-manager/src/manager.cpp
@@ -286,6 +286,7 @@
         {
             // cancel the timer
             l_timer.cancel();
+            processFailedEeproms();
             m_interface->set_property("CollectionStatus",
                                       std::string("Completed"));
 
@@ -923,4 +924,16 @@
             "VPD recollection failed with error: " + std::string(l_ex.what()));
     }
 }
+
+void Manager::processFailedEeproms()
+{
+    if (m_worker.get() != nullptr)
+    {
+        // TODO:
+        // - iterate through list of EEPROMs for which thread creation has
+        // failed
+        // - For each failed EEPROM, trigger VPD collection
+        m_worker->getFailedEepromPaths().clear();
+    }
+}
 } // namespace vpd
diff --git a/vpd-manager/src/worker.cpp b/vpd-manager/src/worker.cpp
index a0978c8..c1e6b38 100644
--- a/vpd-manager/src/worker.cpp
+++ b/vpd-manager/src/worker.cpp
@@ -1567,19 +1567,26 @@
             continue;
         }
 
-        std::thread{[vpdFilePath, this]() {
-            const auto& l_parseResult = parseAndPublishVPD(vpdFilePath);
+        try
+        {
+            std::thread{[vpdFilePath, this]() {
+                const auto& l_parseResult = parseAndPublishVPD(vpdFilePath);
 
-            // thread returned.
-            m_mutex.lock();
-            m_activeCollectionThreadCount--;
-            m_mutex.unlock();
+                m_mutex.lock();
+                m_activeCollectionThreadCount--;
+                m_mutex.unlock();
 
-            if (!m_activeCollectionThreadCount)
-            {
-                m_isAllFruCollected = true;
-            }
-        }}.detach();
+                if (!m_activeCollectionThreadCount)
+                {
+                    m_isAllFruCollected = true;
+                }
+            }}.detach();
+        }
+        catch (const std::exception& l_ex)
+        {
+            // add vpdFilePath(EEPROM path) to failed list
+            m_failedEepromPaths.push_front(vpdFilePath);
+        }
     }
 }
 
