diff --git a/extensions/openpower-pels/manager.cpp b/extensions/openpower-pels/manager.cpp
index a40305d..e64e858 100644
--- a/extensions/openpower-pels/manager.cpp
+++ b/extensions/openpower-pels/manager.cpp
@@ -197,7 +197,7 @@
         // Check if firmware should quiesce system due to error
         checkPelAndQuiesce(pel);
         updateEventId(pel);
-        updateResolution(pel);
+        updateResolution(*pel);
         createPELEntry(obmcLogID);
     }
     else
@@ -404,7 +404,7 @@
     // Check if firmware should quiesce system due to error
     checkPelAndQuiesce(pel);
     updateEventId(pel);
-    updateResolution(pel);
+    updateResolution(*pel);
     createPELEntry(obmcLogID);
 }
 
@@ -781,14 +781,16 @@
     return resolution;
 }
 
-void Manager::updateResolution(std::unique_ptr<openpower::pels::PEL>& pel)
+bool Manager::updateResolution(const openpower::pels::PEL& pel)
 {
-    std::string callouts = getResolution(*pel);
-    auto entryN = _logManager.entries.find(pel->obmcLogID());
+    std::string callouts = getResolution(pel);
+    auto entryN = _logManager.entries.find(pel.obmcLogID());
     if (entryN != _logManager.entries.end())
     {
         entryN->second->resolution(callouts, true);
     }
+
+    return false;
 }
 
 void Manager::setEntryPath(uint32_t obmcLogID)
diff --git a/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index 8d0079d..bfe01a1 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -63,6 +63,10 @@
             // Create PELEntry interface and setup properties with their values
             createPELEntry(entry.first, true);
         }
+
+        _repo.for_each(
+            std::bind(&Manager::updateResolution, this, std::placeholders::_1));
+
         setupPELDeleteWatch();
     }
 
@@ -409,8 +413,10 @@
      * Update the resolution property of D-bus with callouts extracted from PEL
      *
      * @param[in] pel - The PEL to use
+     *
+     * @return bool - false for Repositor::for_each().
      */
-    void updateResolution(std::unique_ptr<openpower::pels::PEL>& pel);
+    bool updateResolution(const openpower::pels::PEL& pel);
 
     /**
      * @brief Create PELEntry Interface with supported properties
