diff --git a/strictdoc/server/routers/main_router.py b/strictdoc/server/routers/main_router.py
index ca3b35e6e..a4420e3cd 100644
--- a/strictdoc/server/routers/main_router.py
+++ b/strictdoc/server/routers/main_router.py
@@ -2657,8 +2657,8 @@ def get_search(q: Optional[str] = None):
                 node_query = QueryObject(
                     query, export_action.traceability_index
                 )
-            except:
-                error = "error: Cannot parse query."
+            except Exception as e:
+                error = f"error: {e}"
 
         if node_query is not None:
             result = []
diff --git a/tests/end2end/helpers/screens/search/search.py b/tests/end2end/helpers/screens/search/search.py
index 96e905a91..51d1cd4f6 100644
--- a/tests/end2end/helpers/screens/search/search.py
+++ b/tests/end2end/helpers/screens/search/search.py
@@ -1,3 +1,4 @@
+from selenium import webdriver
 from selenium.webdriver.common.by import By
 
 from tests.end2end.helpers.screens.screen import Screen
@@ -9,6 +10,11 @@ def do_click_on_search_requirements(self):
             '//a[@data-testid="node.is_requirement"]',
         )
 
+    def get_search_error_msg(self):
+        return self.test_case.find_element(
+            By.XPATH, "//div[@class='sdoc-form-error']"
+        ).text
+
     def assert_nr_results(self, nr_results: int):
         content = (
             f"Found {nr_results} results."
@@ -33,3 +39,14 @@ def do_click_on_search_sections(self) -> Screen_SearchResults:
             '//a[@data-testid="node.is_section"]',
         )
         return Screen_SearchResults(self.test_case)
+
+    def do_search(self, query) -> Screen_SearchResults:
+        textBox = self.test_case.driver.find_element(
+            By.XPATH, "//input[@id='q']"
+        )
+        textBox.clear()
+        textBox.send_keys(query)
+        self.test_case.click_xpath(
+            '//button[@data-testid="form-submit-action"]',
+        )
+        return Screen_SearchResults(self.test_case)
diff --git a/tests/end2end/screens/search/view_search_screen/test_case.py b/tests/end2end/screens/search/view_search_screen/test_case.py
index 1d21b4bdc..dcf2ff949 100644
--- a/tests/end2end/screens/search/view_search_screen/test_case.py
+++ b/tests/end2end/screens/search/view_search_screen/test_case.py
@@ -14,12 +14,11 @@
 
 
 class Test(E2ECase):
-    def test(self):
+    def test_search_links(self):
         with SDocTestServer(
             input_path=path_to_this_test_file_folder
         ) as test_server:
             self.open(test_server.get_host_and_port())
-
             screen_project_index = Screen_ProjectIndex(self)
             screen_project_index.assert_on_screen()
             screen_project_index.assert_link_to_search_screen_present()
@@ -38,3 +37,40 @@ def test(self):
 
             screen_search_results = screen_search.do_click_on_search_sections()
             screen_search_results.assert_text("Section title")
+
+    def test_empty_search(self):
+        with SDocTestServer(
+            input_path=path_to_this_test_file_folder
+        ) as test_server:
+            self.open(test_server.get_host_and_port())
+
+            screen_project_index = Screen_ProjectIndex(self)
+            screen_project_index.assert_on_screen()
+
+            screen_search: Screen_Search = (
+                screen_project_index.do_click_on_search_screen_link()
+            )
+            screen_search_results = screen_search.do_search(
+                """(node.is_requirement and node["STATEMENT"] == "NONE")"""
+            )
+
+            screen_search_results.assert_nr_results(0)
+
+    def test_invalid_search(self):
+        with SDocTestServer(
+            input_path=path_to_this_test_file_folder
+        ) as test_server:
+            self.open(test_server.get_host_and_port())
+
+            screen_project_index = Screen_ProjectIndex(self)
+            screen_project_index.assert_on_screen()
+
+            screen_search: Screen_Search = (
+                screen_project_index.do_click_on_search_screen_link()
+            )
+            screen_search_results = screen_search.do_search("""foo""")
+
+            self.assertRegex(
+                screen_search_results.get_search_error_msg(),
+                "error:.+Expected.+[*]foo",
+            )