diff --git a/elog_entry.hpp b/elog_entry.hpp
index 3a6b313..db9d9da 100644
--- a/elog_entry.hpp
+++ b/elog_entry.hpp
@@ -69,20 +69,20 @@
         EntryIfaces(bus, path.c_str(), true),
         parent(parent)
     {
-        id(idErr);
-        severity(severityErr);
-        timestamp(timestampErr);
-        updateTimestamp(timestampErr);
-        message(std::move(msgErr));
-        additionalData(std::move(additionalDataErr));
-        associations(std::move(objects));
+        id(idErr, true);
+        severity(severityErr, true);
+        timestamp(timestampErr, true);
+        updateTimestamp(timestampErr, true);
+        message(std::move(msgErr), true);
+        additionalData(std::move(additionalDataErr), true);
+        associations(std::move(objects), true);
         // Store a copy of associations in case we need to recreate
         assocs = associations();
-        sdbusplus::xyz::openbmc_project::Logging::server::Entry::resolved(
-            false);
+        sdbusplus::xyz::openbmc_project::Logging::server::Entry::resolved(false,
+                                                                          true);
 
-        version(fwVersion);
-        purpose(VersionPurpose::BMC);
+        version(fwVersion, true);
+        purpose(VersionPurpose::BMC, true);
 
         // Emit deferred signal.
         this->emit_object_added();
@@ -101,7 +101,7 @@
         EntryIfaces(bus, path.c_str(), true),
         parent(parent)
     {
-        id(entryId);
+        id(entryId, true);
     };
 
     /** @brief Set resolution status of the error.
diff --git a/elog_serialize.cpp b/elog_serialize.cpp
index 070164c..a8b4852 100644
--- a/elog_serialize.cpp
+++ b/elog_serialize.cpp
@@ -86,20 +86,21 @@
           resolved, fwVersion, updateTimestamp, eventId, resolution);
     }
 
-    e.id(id);
-    e.severity(severity);
-    e.timestamp(timestamp);
-    e.message(message);
-    e.additionalData(additionalData);
+    e.id(id, true);
+    e.severity(severity, true);
+    e.timestamp(timestamp, true);
+    e.message(message, true);
+    e.additionalData(additionalData, true);
     e.sdbusplus::xyz::openbmc_project::Logging::server::Entry::resolved(
-        resolved);
-    e.associations(associations);
-    e.version(fwVersion);
+        resolved, true);
+    e.associations(associations, true);
+    e.version(fwVersion, true);
     e.purpose(sdbusplus::xyz::openbmc_project::Software::server::Version::
-                  VersionPurpose::BMC);
-    e.updateTimestamp(updateTimestamp);
-    e.eventId(eventId);
-    e.resolution(resolution);
+                  VersionPurpose::BMC,
+              true);
+    e.updateTimestamp(updateTimestamp, true);
+    e.eventId(eventId, true);
+    e.resolution(resolution, true);
 }
 
 fs::path serialize(const Entry& e, const fs::path& dir)
diff --git a/log_manager.cpp b/log_manager.cpp
index a8e9685..fad602f 100644
--- a/log_manager.cpp
+++ b/log_manager.cpp
@@ -582,7 +582,7 @@
             // validate the restored error entry id
             if (sanity(static_cast<uint32_t>(idNum), e->id()))
             {
-                e->path(file.path());
+                e->path(file.path(), true);
                 e->emit_object_added();
                 if (e->severity() >= Entry::sevLowerLimit)
                 {
