From f64e60ddf67d4d183ae7f0e47f869feced797639 Mon Sep 17 00:00:00 2001
From: Helldragon67 <kilian.scheidecker@orange.fr>
Date: Mon, 27 Jan 2025 18:39:10 +0100
Subject: [PATCH] better error handling

---
 backend/src/main.py                   | 6 ++++++
 backend/src/optimization/optimizer.py | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/backend/src/main.py b/backend/src/main.py
index 1fd7fc0..85b7f5b 100644
--- a/backend/src/main.py
+++ b/backend/src/main.py
@@ -92,6 +92,9 @@ def new_trip(preferences: Preferences,
         preferences = preferences
     )
 
+    if len(landmarks) == 0 :
+        raise HTTPException(status_code=500, detail=f"No landmarks were found.")
+
     # insert start and finish to the landmarks list
     landmarks_short.insert(0, start_landmark)
     landmarks_short.append(end_landmark)
@@ -115,6 +118,9 @@ def new_trip(preferences: Preferences,
         refined_tour = refiner.refine_optimization(landmarks, base_tour,
                                                preferences.max_time_minute,
                                                preferences.detour_tolerance_minute)
+    except TimeoutError as te :
+        logger.error(f'Refiner failed : {str(te)} Using base tour.')
+        refined_tour = base_tour
     except Exception as exc :
         raise HTTPException(status_code=500, detail=f"An unexpected error occurred: {str(exc)}") from exc
 
diff --git a/backend/src/optimization/optimizer.py b/backend/src/optimization/optimizer.py
index db7251c..bc36398 100644
--- a/backend/src/optimization/optimizer.py
+++ b/backend/src/optimization/optimizer.py
@@ -588,7 +588,7 @@ class Optimizer:
         circles = self.is_connected(solution)
 
         i = 0
-        timeout = 40
+        timeout = 15
         while circles is not None :
             i += 1
             if i == timeout :