diff --git a/src/main/java/stirling/software/SPDF/config/security/database/DatabaseService.java b/src/main/java/stirling/software/SPDF/config/security/database/DatabaseService.java
index a8daede36..04b470f92 100644
--- a/src/main/java/stirling/software/SPDF/config/security/database/DatabaseService.java
+++ b/src/main/java/stirling/software/SPDF/config/security/database/DatabaseService.java
@@ -240,8 +240,32 @@ public class DatabaseService implements DatabaseInterface {
     private boolean isH2Database() {
         ApplicationProperties.Datasource datasource =
                 applicationProperties.getSystem().getDatasource();
-        return !datasource.isEnableCustomDatabase()
-                || datasource.getType().equalsIgnoreCase(ApplicationProperties.Driver.H2.name());
+
+        boolean isTypeH2 =
+                datasource.getType().equalsIgnoreCase(ApplicationProperties.Driver.H2.name());
+        boolean isDBUrlH2 =
+                datasource.getCustomDatabaseUrl().contains("h2")
+                        || datasource.getCustomDatabaseUrl().contains("H2");
+
+        if (isTypeH2 && !isDBUrlH2) {
+            log.warn(
+                    "Datasource type is H2, but the URL does not contain 'h2'. "
+                            + "Please check your configuration.");
+            throw new IllegalStateException(
+                    "Datasource type is H2, but the URL does not contain 'h2'. Please check your"
+                            + " configuration.");
+        } else if (!isTypeH2 && isDBUrlH2) {
+            log.warn(
+                    "Datasource URL contains 'h2', but the type is not H2. "
+                            + "Please check your configuration.");
+            throw new IllegalStateException(
+                    "Datasource URL contains 'h2', but the type is not H2. Please check your"
+                            + " configuration.");
+        }
+
+        boolean isH2 = isTypeH2 && isDBUrlH2;
+
+        return !datasource.isEnableCustomDatabase() || isH2;
     }
 
     /**