diff --git a/semantic_router/index/local.py b/semantic_router/index/local.py
index 721adf05c3df06bf668dd35778beb94a6b1be994..509e0fdfded4b3021b328b14d0bf7ffdd55ccb31 100644
--- a/semantic_router/index/local.py
+++ b/semantic_router/index/local.py
@@ -155,6 +155,8 @@ class LocalIndex(BaseIndex):
         Deletes the index, effectively clearing it and setting it to None.
         """
         self.index = None
+        self.routes = None
+        self.utterances = None
 
     def _get_indices_for_route(self, route_name: str):
         """Gets an array of indices for a specific route."""
diff --git a/tests/unit/test_layer.py b/tests/unit/test_layer.py
index 0ef0c1a1fdb78ed8df5ebcd36606c7e152ac61aa..e438fc5b838ff34d0fc1761ee66c4ecd3388c4d3 100644
--- a/tests/unit/test_layer.py
+++ b/tests/unit/test_layer.py
@@ -16,7 +16,7 @@ from semantic_router.route import Route
 from platform import python_version
 
 
-PINECONE_SLEEP = 3
+PINECONE_SLEEP = 6
 
 
 def mock_encoder_call(utterances):
@@ -203,8 +203,7 @@ class TestIndexEncoders:
         index = init_index(index_cls)
         route_layer = RouteLayer(
             encoder=encoder_cls(), routes=routes, index=index,
-            auto_sync="local" if index_cls is PineconeIndex else None,
-            top_k=10,
+            auto_sync="local", top_k=10,
         )
         if index_cls is PineconeIndex:
             time.sleep(PINECONE_SLEEP)  # allow for index to be populated
@@ -212,7 +211,7 @@ class TestIndexEncoders:
         assert openai_encoder.score_threshold == 0.3
         assert route_layer.score_threshold == 0.3
         assert route_layer.top_k == 10
-        assert len(route_layer.index) if route_layer.index is not None else 0 == 5
+        assert len(route_layer.index) == 5
         assert (
             len(set(route_layer._get_route_names()))
             if route_layer._get_route_names() is not None
@@ -292,7 +291,7 @@ class TestRouteLayer:
         index = init_index(index_cls)
         route_layer = RouteLayer(
             encoder=openai_encoder, routes=routes, index=index,
-            auto_sync="local" if index_cls is PineconeIndex else None,
+            auto_sync="local",
         )
         if index_cls is PineconeIndex:
             time.sleep(PINECONE_SLEEP)  # allow for index to be populated
@@ -735,7 +734,10 @@ class TestRouteLayer:
 
     def test_retrieve_with_text(self, openai_encoder, routes, index_cls):
         index = init_index(index_cls)
-        route_layer = RouteLayer(encoder=openai_encoder, routes=routes, index=index)
+        route_layer = RouteLayer(
+            encoder=openai_encoder, routes=routes, index=index,
+            auto_sync="local",
+        )
         text = "Hello"
         results = route_layer.retrieve_multiple_routes(text=text)
         assert len(results) >= 1, "Expected at least one result"
@@ -745,7 +747,10 @@ class TestRouteLayer:
 
     def test_retrieve_with_vector(self, openai_encoder, routes, index_cls):
         index = init_index(index_cls)
-        route_layer = RouteLayer(encoder=openai_encoder, routes=routes, index=index)
+        route_layer = RouteLayer(
+            encoder=openai_encoder, routes=routes, index=index,
+            auto_sync="local",
+        )
         vector = [0.1, 0.2, 0.3]
         results = route_layer.retrieve_multiple_routes(vector=vector)
         assert len(results) >= 1, "Expected at least one result"
@@ -755,13 +760,19 @@ class TestRouteLayer:
 
     def test_retrieve_without_text_or_vector(self, openai_encoder, routes, index_cls):
         index = init_index(index_cls)
-        route_layer = RouteLayer(encoder=openai_encoder, routes=routes, index=index)
+        route_layer = RouteLayer(
+            encoder=openai_encoder, routes=routes, index=index,
+            auto_sync="local",
+        )
         with pytest.raises(ValueError, match="Either text or vector must be provided"):
             route_layer.retrieve_multiple_routes()
 
     def test_retrieve_no_matches(self, openai_encoder, routes, index_cls):
         index = init_index(index_cls)
-        route_layer = RouteLayer(encoder=openai_encoder, routes=routes, index=index)
+        route_layer = RouteLayer(
+            encoder=openai_encoder, routes=routes, index=index,
+            auto_sync="local",
+        )
         text = "Asparagus"
         results = route_layer.retrieve_multiple_routes(text=text)
         assert len(results) == 0, f"Expected no results, but got {len(results)}"
@@ -859,14 +870,20 @@ class TestRouteLayer:
 
 class TestLayerFit:
     def test_eval(self, openai_encoder, routes, test_data):
-        route_layer = RouteLayer(encoder=openai_encoder, routes=routes)
+        route_layer = RouteLayer(
+            encoder=openai_encoder, routes=routes,
+            auto_sync="local",
+        )
         # unpack test data
         X, y = zip(*test_data)
         # evaluate
         route_layer.evaluate(X=X, y=y, batch_size=int(len(test_data) / 5))
 
     def test_fit(self, openai_encoder, routes, test_data):
-        route_layer = RouteLayer(encoder=openai_encoder, routes=routes)
+        route_layer = RouteLayer(
+            encoder=openai_encoder, routes=routes,
+            auto_sync="local",
+        )
         # unpack test data
         X, y = zip(*test_data)
         route_layer.fit(X=X, y=y, batch_size=int(len(test_data) / 5))