diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp
index 02a89df2b37e03f83c0671ad546db489b7b3276d..b78b53aa5b356a033603a8ef9b86bcf71113e2f6 100644
--- a/Marlin/configuration_store.cpp
+++ b/Marlin/configuration_store.cpp
@@ -968,7 +968,6 @@ void MarlinSettings::postprocess() {
         SERIAL_ECHOPAIR("(EEPROM=", stored_ver);
         SERIAL_ECHOLNPGM(" Marlin=" EEPROM_VERSION ")");
       #endif
-      if (!validating) reset();
       eeprom_error = true;
     }
     else {
@@ -1523,14 +1522,12 @@ void MarlinSettings::postprocess() {
         #endif
       }
 
-      if (!validating) {
-        if (eeprom_error) reset(); else postprocess();
-      }
+      if (!validating && !eeprom_error) postprocess();
 
       #if ENABLED(AUTO_BED_LEVELING_UBL)
-        ubl.report_state();
-
         if (!validating) {
+          ubl.report_state();
+
           if (!ubl.sanity_check()) {
             SERIAL_EOL();
             #if ENABLED(EEPROM_CHITCHAT)
diff --git a/Marlin/configuration_store.h b/Marlin/configuration_store.h
index 1f0a33c5998ff72ae93ffd52a7d1e751c4e96756..2bba57930e54b36f846772a6f2efd6b2922cad06 100644
--- a/Marlin/configuration_store.h
+++ b/Marlin/configuration_store.h
@@ -35,15 +35,16 @@ class MarlinSettings {
     static bool save();   // Return 'true' if data was saved
 
     FORCE_INLINE static bool init_eeprom() {
-      bool success = true;
       reset();
       #if ENABLED(EEPROM_SETTINGS)
-        success = save();
+        const bool success = save();
         #if ENABLED(EEPROM_CHITCHAT)
           if (success) report();
         #endif
+        return success;
+      #else
+        return true;
       #endif
-      return success;
     }
 
     #if ENABLED(EEPROM_SETTINGS)