diff --git a/scripts/upgrade_oniro/upgrade_oniro.py b/scripts/upgrade_oniro/upgrade_oniro.py
index df34cb772218aea4c4f41abc7ec0d59fb95643b5..ed79cb3921b31a0ece662ba6c55b52cecbf7b95c 100755
--- a/scripts/upgrade_oniro/upgrade_oniro.py
+++ b/scripts/upgrade_oniro/upgrade_oniro.py
@@ -229,9 +229,9 @@ def restore_oniro():
         Returns:
             None. Side effects Oniro's backup restore
     """
-    # TODO add an exception handling if the metadata file is not found
     # TODO if something created some files / directories we are not able to
     # delete those and we may end up with a inconsistent state
+
     from upgrade_oniro_utils import find_latest_backup
 
     if backup_archive_arg == "latest":
@@ -249,7 +249,11 @@ def restore_oniro():
     print(f"Restoring {backup_archive_name}")
     with tarfile.open(backup_archive_name) as backup_archive:
         # Extract the metadata file and delete all the old folders
-        backup_folders_file = backup_archive.extract("backup_folders")
+        try:
+            backup_folders_file = backup_archive.extract("backup_folders")
+        except KeyError:
+            print("Metadata file not found in the backup archive, aborting...")
+            return
         with open("backup_folders") as bf:
             for folder in bf.readlines():
                 if os.path.exists(folder):