diff --git a/src/views/feature/Feature_list.vue b/src/views/feature/Feature_list.vue
index 8f69f3a1634a4571f2df40efba108ab6c91fb598..e3906d9f6020911433cbd6fcf232f1cd49506ce5 100644
--- a/src/views/feature/Feature_list.vue
+++ b/src/views/feature/Feature_list.vue
@@ -37,7 +37,11 @@
           </div>
 
           <div
-            v-if="project && feature_types && permissions.can_create_feature"
+            v-if="
+              project &&
+              feature_types.length > 0 &&
+              permissions.can_create_feature
+            "
             class="item right"
           >
             <div
@@ -322,10 +326,10 @@ export default {
     },
 
     onFilterChange() {
-      var features = this.filteredFeatures;
-      this.featureGroup.clearLayers();
-      this.featureGroup = mapUtil.addFeatures(features, {});
-      if (features.length > 0) {
+      if (this.featureGroup) {
+        const features = this.filteredFeatures;
+        this.featureGroup.clearLayers();
+        this.featureGroup = mapUtil.addFeatures(features, {});
         mapUtil
           .getMap()
           .fitBounds(this.featureGroup.getBounds(), { padding: [25, 25] });
@@ -356,9 +360,8 @@ export default {
       });
 
       // --------- End sidebar events ----------
-      if (this.$store.state.map.geojsonFeatures) {
-        this.loadFeatures(this.$store.state.map.geojsonFeatures);
-      } else {
+      if (this.features && this.features.length > 0) {
+        //* features are updated consistently, then if features exists, we can fetch the geojson version
         const url = `${this.$store.state.configuration.VUE_APP_DJANGO_API_BASE}projects/${this.$route.params.slug}/feature/?output=geojson`;
         this.$store.commit(
           "DISPLAY_LOADER",
@@ -367,7 +370,9 @@ export default {
         axios
           .get(url)
           .then((response) => {
-            this.loadFeatures(response.data.features);
+            if (response.status === 200 && response.data.features.length > 0) {
+              this.loadFeatures(response.data.features);
+            }
             this.$store.commit("DISCARD_LOADER");
           })
           .catch((error) => {
diff --git a/src/views/project/Project_detail.vue b/src/views/project/Project_detail.vue
index 5087954315d796ba8161c98966784ce467d44505..b77188127e9e778f1f8b306569f250629617dff8 100644
--- a/src/views/project/Project_detail.vue
+++ b/src/views/project/Project_detail.vue
@@ -590,7 +590,6 @@ export default {
     if (this.project && this.permissions.can_view_project) {
       this.$store.dispatch("map/INITIATE_MAP");
       const url = `${this.$store.state.configuration.VUE_APP_DJANGO_API_BASE}projects/${this.$route.params.slug}/feature/?output=geojson`;
-      let self = this;
       axios
         .get(url)
         .then((response) => {
@@ -600,7 +599,9 @@ export default {
             mapUtil
               .getMap()
               .fitBounds(featureGroup.getBounds(), { padding: [25, 25] });
-            self.$store.commit("map/SET_GEOJSON_FEATURES", features);
+            this.$store.commit("map/SET_GEOJSON_FEATURES", features);
+          } else {
+            this.$store.commit("map/SET_GEOJSON_FEATURES", []);
           }
         })
         .catch((error) => {