diff --git a/src/manager_serialize.cpp b/src/manager_serialize.cpp
index c0a2782..57b8991 100644
--- a/src/manager_serialize.cpp
+++ b/src/manager_serialize.cpp
@@ -55,9 +55,24 @@
 
 void serialize(const Manager& obj, const fs::path& path)
 {
-    std::ofstream os(path.c_str(), std::ios::out | std::ios::binary);
-    cereal::BinaryOutputArchive oarchive(os);
-    oarchive(obj);
+    try
+    {
+        std::ofstream os(path, std::ios::out | std::ios::binary);
+
+        if (!os.is_open())
+        {
+            lg2::error("Failed to open file for serialization: {FILE}", "FILE",
+                       path);
+            return;
+        }
+
+        cereal::BinaryOutputArchive oarchive(os);
+        oarchive(obj);
+    }
+    catch (const std::exception& e)
+    {
+        lg2::error("Failed to Serialize : {ERROR} ", "ERROR", e);
+    }
 }
 
 bool deserialize(const fs::path& path, Manager& entry)
@@ -67,6 +82,12 @@
         if (fs::exists(path))
         {
             std::ifstream is(path.c_str(), std::ios::in | std::ios::binary);
+            if (!is.is_open())
+            {
+                lg2::error("Failed to open file for deserialization: {FILE}",
+                           "FILE", path);
+                return false;
+            }
             cereal::BinaryInputArchive iarchive(is);
             iarchive(entry);
             return true;
