diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesController.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesController.java
index 6714f80fb5d37434d93da18d1ed33db2a6f08395..c0c8659b2f9158f356302f0e8b3b77120f984092 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesController.java
@@ -8,8 +8,7 @@ import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import lcsb.mapviewer.api.BaseController;
-import lcsb.mapviewer.api.QueryException;
+import lcsb.mapviewer.api.*;
 
 @RestController
 @RequestMapping(value = "/projects/{projectId}/models/{modelId}/", produces = MediaType.APPLICATION_JSON_VALUE)
@@ -67,7 +66,7 @@ public class BioEntitiesController extends BaseController {
 
   @PreAuthorize("hasAnyAuthority('IS_ADMIN', 'READ_PROJECT:' + #projectId)")
   @RequestMapping(value = "bioEntities/suggestedQueryList", method = { RequestMethod.GET, RequestMethod.POST })
-  public String[] getSuggestedQueryList(@PathVariable(value = "projectId") String projectId) {
+  public String[] getSuggestedQueryList(@PathVariable(value = "projectId") String projectId) throws ObjectNotFoundException {
     return bioEntitiesRestImpl.getSuggestedQueryList(projectId);
   }
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesRestImpl.java
index b39963ae3105a5c73cbec26d06bf1719b83a4bb5..a58b81e830ccaff2e40869aa1d046dc3ed3ce531 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesRestImpl.java
@@ -38,6 +38,9 @@ public class BioEntitiesRestImpl extends BaseRestImpl {
     List<Map<String, Object>> resultMap = new ArrayList<>();
 
     Model model = getModelService().getLastModelByProjectId(projectId);
+    if (model == null) {
+      throw new ObjectNotFoundException("Project with given id doesn't exist");
+    }
 
     Model submodel = model.getSubmodelById(modelId);
 
@@ -66,6 +69,10 @@ public class BioEntitiesRestImpl extends BaseRestImpl {
     List<Map<String, Object>> resultMap = new ArrayList<>();
 
     Model model = getModelService().getLastModelByProjectId(projectId);
+    if (model == null) {
+      throw new ObjectNotFoundException("Project with given id doesn't exist");
+    }
+
     if (!modelId.equals("*")) {
       model = model.getSubmodelById(modelId);
     }
@@ -82,8 +89,11 @@ public class BioEntitiesRestImpl extends BaseRestImpl {
     return resultMap;
   }
 
-  public String[] getSuggestedQueryList(String projectId) {
+  public String[] getSuggestedQueryList(String projectId) throws ObjectNotFoundException {
     Model model = getModelService().getLastModelByProjectId(projectId);
+    if (model==null) {
+      throw new ObjectNotFoundException("Project with given id doesn't exist");
+    }
     return searchService.getSuggestedQueryList(model);
   }
 
diff --git a/web/src/test/java/lcsb/mapviewer/web/MapControllerIntegrationTest.java b/web/src/test/java/lcsb/mapviewer/web/MapControllerIntegrationTest.java
index 80f1ccf3a2eaf9fdee8984f914e8d3dea4cef335..d6bb18f9fe88cb9265ff4c7adfdf5fe505da8353 100644
--- a/web/src/test/java/lcsb/mapviewer/web/MapControllerIntegrationTest.java
+++ b/web/src/test/java/lcsb/mapviewer/web/MapControllerIntegrationTest.java
@@ -102,6 +102,34 @@ public class MapControllerIntegrationTest extends ControllerIntegrationTest {
         .andExpect(status().is2xxSuccessful());
   }
 
+  @Test
+  public void testSearchBioEntitiesByCoordinatesWithUndefinedProject() throws Exception {
+    MockHttpSession session = createSession(ControllerIntegrationTest.BUILT_IN_TEST_ADMIN_LOGIN,
+        ControllerIntegrationTest.BUILT_IN_TEST_ADMIN_PASSWORD);
+
+    RequestBuilder request = get(
+        "/projects/*/models/" + map.getId() + "/bioEntities:search?coordinates=104.36,182.81")
+            .contentType(MediaType.APPLICATION_FORM_URLENCODED)
+            .session(session);
+
+    mockMvc.perform(request)
+        .andExpect(status().isNotFound());
+  }
+
+  @Test
+  public void testSearchBioEntitiesByQueryWithUndefinedProject() throws Exception {
+    MockHttpSession session = createSession(ControllerIntegrationTest.BUILT_IN_TEST_ADMIN_LOGIN,
+        ControllerIntegrationTest.BUILT_IN_TEST_ADMIN_PASSWORD);
+
+    RequestBuilder request = get(
+        "/projects/*/models/" + map.getId() + "/bioEntities:search?query=s1")
+            .contentType(MediaType.APPLICATION_FORM_URLENCODED)
+            .session(session);
+
+    mockMvc.perform(request)
+        .andExpect(status().isNotFound());
+  }
+
   @Test
   public void testSearchBioEntitiesByCoordinatesWithInvalidModelId() throws Exception {
     userService.grantUserPrivilege(anonymous, PrivilegeType.READ_PROJECT, project.getProjectId());
@@ -138,6 +166,21 @@ public class MapControllerIntegrationTest extends ControllerIntegrationTest {
         .andExpect(status().is2xxSuccessful());
   }
 
+  @Test
+  public void testSuggestedQueryListWithUndefinedProject() throws Exception {
+    MockHttpSession session = createSession(ControllerIntegrationTest.BUILT_IN_TEST_ADMIN_LOGIN,
+        ControllerIntegrationTest.BUILT_IN_TEST_ADMIN_PASSWORD);
+
+
+    RequestBuilder request = get(
+        "/projects/*/models/*/bioEntities/suggestedQueryList")
+            .contentType(MediaType.APPLICATION_FORM_URLENCODED)
+            .session(session);
+
+    mockMvc.perform(request)
+        .andExpect(status().isNotFound());
+  }
+
   @Test
   public void testGetMapById() throws Exception {
     userService.grantUserPrivilege(anonymous, PrivilegeType.READ_PROJECT, project.getProjectId());