diff --git a/src/lclayout/router.py b/src/lclayout/router.py
index a54e50e9207609c9bd42c5fc2f0fd477390b9ca4..040504ae7f4227f52b763cc91f259f7b1b82f703 100644
--- a/src/lclayout/router.py
+++ b/src/lclayout/router.py
@@ -222,8 +222,13 @@ class DefaultRouter():
         routing_solutions = self._06_route(shapes, io_pins, transistor_layouts,
                                        routing_nets,
                                        routing_terminal_debug_layers, top_cell)
-        routing_trees = list(routing_solutions)[-1]
-        self._08_draw_routes(shapes, routing_trees)
+
+        try:
+            routing_trees = list(routing_solutions)[-1]
+            self._08_draw_routes(shapes, routing_trees)
+        except:
+            routing_trees = None
+
         return routing_trees
 
     def _06_route(self, shapes: Dict[str, db.Shapes],