diff --git a/editoast/src/views/v2/train_schedule.rs b/editoast/src/views/v2/train_schedule.rs index 310fe2eb4ed..4dc693435a1 100644 --- a/editoast/src/views/v2/train_schedule.rs +++ b/editoast/src/views/v2/train_schedule.rs @@ -385,7 +385,15 @@ pub async fn train_simulation( } // Compute simulation from core - let result = simulation_request.fetch(core.as_ref()).await?; + let result = simulation_request.fetch(core.as_ref()).await; + + let result = match result { + Ok(result) => result, + Err(core_error) if core_error.status.is_server_error() => { + SimulationResponse::SimulationFailed { core_error } + } + err => return err, + }; // Cache the simulation response redis_conn