diff --git a/ProcessLib/UncoupledProcessesTimeLoop.cpp b/ProcessLib/UncoupledProcessesTimeLoop.cpp
index 505e4be3dacd754a2f0db9b34445465386c368d7..60a7afc6c0ec3775c31f8b17bb725d46cc40625a 100644
--- a/ProcessLib/UncoupledProcessesTimeLoop.cpp
+++ b/ProcessLib/UncoupledProcessesTimeLoop.cpp
@@ -9,6 +9,7 @@
 
 #include "UncoupledProcessesTimeLoop.h"
 
+#include "BaseLib/Error.h"
 #include "BaseLib/RunTime.h"
 #include "BaseLib/uniqueInsert.h"
 #include "NumLib/ODESolver/ConvergenceCriterionPerComponent.h"
@@ -797,6 +798,11 @@ bool UncoupledProcessesTimeLoop::loop()
     return nonlinear_solver_succeeded;
 }
 
+static std::string nonlinear_fixed_dt_fails_info =
+    "Nonlinear solver fails. Because of the time stepper"
+    " of FixedTimeStepping is used, the program has to be"
+    " terminated ";
+
 bool UncoupledProcessesTimeLoop::solveUncoupledEquationSystems(
     const double t, const double dt, const std::size_t timestep_id)
 {
@@ -840,6 +846,11 @@ bool UncoupledProcessesTimeLoop::solveUncoupledEquationSystems(
             _output->doOutputAlways(pcs, spd->process_output, timestep_id, t,
                                     x);
 
+            if (!spd->timestepper->isSolutionErrorComputationNeeded())
+            {
+                OGS_FATAL(nonlinear_fixed_dt_fails_info.data());
+            }
+
             return false;
         }
 
@@ -916,6 +927,11 @@ bool UncoupledProcessesTimeLoop::solveCoupledEquationSystemsByStaggeredScheme(
                 _output->doOutputAlways(spd->process, spd->process_output,
                                         timestep_id, t, x);
 
+                if (!spd->timestepper->isSolutionErrorComputationNeeded())
+                {
+                    OGS_FATAL(nonlinear_fixed_dt_fails_info.data());
+                }
+
                 break;
             }