diff --git a/semantic_router/layer.py b/semantic_router/layer.py
index 7e385dc48c238e4bf4f7d6b9ca106258259f650d..c868d29c2abee2a91c7334b69217104d80a437cc 100644
--- a/semantic_router/layer.py
+++ b/semantic_router/layer.py
@@ -427,7 +427,7 @@ class RouteLayer:
                 if route.function_schemas
                 else [{}] * len(route.utterances)
             ),
-            metadata_list=[route.metadata] * len(route.utterances),
+            metadata_list=[route.metadata if route.metadata else {}] * len(route.utterances),
         )
 
         self.routes.append(route)
@@ -554,7 +554,7 @@ class RouteLayer:
 
     def _extract_routes_details(
         self, routes: List[Route], include_metadata: bool = False
-    ) -> Tuple[list[str], list[str], List[Dict[str, Any]]]:
+    ) -> Tuple:
         route_names = [route.name for route in routes for _ in route.utterances]
         utterances = [utterance for route in routes for utterance in route.utterances]
         function_schemas = [