diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs
index b2b6cc7350..fbf1196d0c 100644
--- a/Ryujinx/Program.cs
+++ b/Ryujinx/Program.cs
@@ -50,7 +50,7 @@ namespace Ryujinx
 
             string appDataPath     = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Ryujinx", "system", "prod.keys");
             string userProfilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".switch", "prod.keys");
-            if (!File.Exists(appDataPath) && !File.Exists(userProfilePath))
+            if (!File.Exists(appDataPath) && !File.Exists(userProfilePath) && !Migration.IsMigrationNeeded())
             {
                 GtkDialog.CreateErrorDialog("Key file was not found. Please refer to `KEYS.md` for more info");
             }
diff --git a/Ryujinx/Ui/Migration.cs b/Ryujinx/Ui/Migration.cs
index c508878d69..9e9b80001d 100644
--- a/Ryujinx/Ui/Migration.cs
+++ b/Ryujinx/Ui/Migration.cs
@@ -64,6 +64,9 @@ namespace Ryujinx.Ui
 
                 dialogSuccess.Run();
 
+                // Reload key set after migration to be sure to catch the keys in the system directory.
+                device.System.LoadKeySet();
+
                 return true;
             }
             catch (HorizonResultException ex)
@@ -171,7 +174,7 @@ namespace Ryujinx.Ui
             }
         }
 
-        private static bool IsMigrationNeeded()
+        public static bool IsMigrationNeeded()
         {
             string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);