diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationService.java
index 2f29e4ec9e7e892b8d811c9a76a8f541121262db..b5aaf0f9148649e4f1ce179ffaa3d0517085ec87 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationService.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationService.java
@@ -44,7 +44,7 @@ public class MigrationService
 		this.transactionRepository = transactionRepository;
 		this.templateRepository = templateRepository;
 		this.databaseConfig = databaseConfig;
-		this.migrationTask = new MigrationTask(applicationSupportFolder);
+		this.migrationTask = new MigrationTask(applicationSupportFolder, settingsService);
 		this.scheduler = scheduler;
 	}
 
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationTask.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationTask.java
index 99bce21bd48fdd08b8057af651242a58d106c908..60f5340d3807d0410832f4150cae146e5fad6816 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationTask.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationTask.java
@@ -1,5 +1,6 @@
 package de.deadlocker8.budgetmaster.migration;
 
+import de.deadlocker8.budgetmaster.settings.SettingsService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -27,14 +28,17 @@ public class MigrationTask implements Runnable
 
 	private final Path applicationSupportFolder;
 
+	private final SettingsService settingsService;
+
 	private MigrationArguments migrationArguments;
 	private MigrationStatus migrationStatus;
 	private List<String> collectedStdout;
 	private List<String> summary;
 
-	public MigrationTask(Path applicationSupportFolder)
+	public MigrationTask(Path applicationSupportFolder, SettingsService settingsService)
 	{
 		this.applicationSupportFolder = applicationSupportFolder;
+		this.settingsService = settingsService;
 		this.migrationStatus = MigrationStatus.NOT_RUNNING;
 	}
 
@@ -72,6 +76,11 @@ public class MigrationTask implements Runnable
 			}
 			finally
 			{
+				// if any error happens during migration the settings table might be still empty and lead to errors
+				// and an infinite progress indicator loop during fetch of the migration status due to SettingsAdvice.class
+				// Therefore ensure settings exist at this point
+				settingsService.createDefaultSettingsIfNotExists();
+
 				Files.deleteIfExists(migratorPath);
 			}