diff --git a/semantic_router/index/base.py b/semantic_router/index/base.py
index 8bb7e1e61607571eef59bcadec6a4701bbf40b03..46d5abb35d464638c341b97146a3a728e46a40fb 100644
--- a/semantic_router/index/base.py
+++ b/semantic_router/index/base.py
@@ -136,12 +136,22 @@ class BaseIndex(BaseModel):
         """
         raise NotImplementedError("This method should be implemented by subclasses.")
 
+    def delete_all(self):
+        """
+        Deletes all records from the index.
+        """
+        logger.warning("This method should be implemented by subclasses.")
+        self.index = None
+        self.routes = None
+        self.utterances = None
+
     def delete_index(self):
         """
         Deletes or resets the index.
         This method should be implemented by subclasses.
         """
-        raise NotImplementedError("This method should be implemented by subclasses.")
+        logger.warning("This method should be implemented by subclasses.")
+        self.index = None
 
     def is_synced(
         self,
diff --git a/tests/unit/test_layer.py b/tests/unit/test_layer.py
index 4db314c6e64e802c8fcb92b0cbbf549c479ed872..fe6a37b0ea939296e62be9bc165c4d6beb8ba653 100644
--- a/tests/unit/test_layer.py
+++ b/tests/unit/test_layer.py
@@ -237,8 +237,8 @@ class TestRouteLayer:
         assert openai_encoder.score_threshold == 0.3
         assert route_layer_openai.score_threshold == 0.3
 
-    def test_delete_all(self, openai_encoder, index_cls):
-        index = init_index(index_cls, sync="local")
+    def test_delete_all(self, openai_encoder, routes, index_cls):
+        index = init_index(index_cls)
         route_layer = RouteLayer(encoder=openai_encoder, routes=routes, index=index)
         if index_cls is PineconeIndex:
             time.sleep(PINECONE_SLEEP)  # allow for index to be populated