diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/conversions.py b/SAS/TMSS/backend/src/tmss/tmssapp/conversions.py
index b675b621c80a100226d9939c1b3d9bd242b30dec..f070832a7ec5b2ee1a224f40c6306996fb2b4354 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/conversions.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/conversions.py
@@ -446,8 +446,16 @@ def coordinates_timestamp_and_station_to_target_transit(pointing: Pointing, time
         return target_transit
 
     if pointing.direction_type == 'SUN':
-        target_transit = observer.noon(time=Time(timestamp), n_grid_points=n_grid_points, which=which)
-        return target_transit.to_datetime()
+        try:
+            target_transit = observer.noon(time=Time(timestamp), n_grid_points=n_grid_points, which=which)
+            return target_transit.to_datetime()
+        except ValueError:
+            # workaround for astropy bug
+            # on rare occasions, astropy can't compute noon.
+            # probably due to rounding/precision.
+            # try again (recurse) with a slightly altered timestamp and n_grid_points
+            # in the very worst case this leads to a recursion stack overflow
+            return coordinates_timestamp_and_station_to_target_transit(pointing, timestamp + timedelta(minutes=1), observer, n_grid_points+1, which)
 
     if pointing.direction_type == 'MOON':
         if which != 'nearest':