diff --git a/src/state.rs b/src/state.rs
index 2e0c27d974d17d7fe4f5f3600939455341b14ffb..b13eea0a8aa24e7ecd4fe2dacc484857cf8d9b5f 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -1472,7 +1472,10 @@ impl StateManager {
         let mut file = File::create(file_path)
             .map_err(|_| Error::CustomError(format!("Failed to create file: {}", file_path)))?;
         let data = Self::save(gb, format)?;
-        file.write_all(&data).unwrap();
+        file.write_all(&data)
+            .map_err(|_| Error::CustomError(format!("Failed to write to file: {}", file_path)))?;
+        file.flush()
+            .map_err(|_| Error::CustomError(format!("Failed to flush file: {}", file_path)))?;
         Ok(())
     }
 
@@ -1484,7 +1487,8 @@ impl StateManager {
         let mut file = File::open(file_path)
             .map_err(|_| Error::CustomError(format!("Failed to open file: {}", file_path)))?;
         let mut data = vec![];
-        file.read_to_end(&mut data).unwrap();
+        file.read_to_end(&mut data)
+            .map_err(|_| Error::CustomError(format!("Failed to read from file: {}", file_path)))?;
         Self::load(&data, gb, format)?;
         Ok(())
     }