From e77861af00d9609075bde6a1ec92d6d5b810699d Mon Sep 17 00:00:00 2001 From: Sudipta Date: Tue, 3 Feb 2026 21:26:56 +0530 Subject: [PATCH 1/3] refactor: improve exception handling in index creation --- .../falkor/code-graph-backend/api/graph.py | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/backend/app/database/falkor/code-graph-backend/api/graph.py b/backend/app/database/falkor/code-graph-backend/api/graph.py index 7c91405b..6ccec82f 100644 --- a/backend/app/database/falkor/code-graph-backend/api/graph.py +++ b/backend/app/database/falkor/code-graph-backend/api/graph.py @@ -3,6 +3,7 @@ from .entities import * from typing import Optional from falkordb import FalkorDB, Path, Node, QueryResult +from redis.exceptions import ResponseError # Configure the logger import logging @@ -48,18 +49,20 @@ def __init__(self, name: str) -> None: self.backlog = None # create indicies - - # index File path, name and ext fields - try: - self.g.create_node_range_index("File", "name", "ext") - except Exception: - pass - - # index Function using full-text search + self._safe_create_index(self.g.create_node_range_index, "File", "name", "ext") + self._safe_create_index(self.g.create_node_fulltext_index, "Searchable", "name") + # index File path, name and ext fields + def _safe_create_index(self, func, label, *args): try: - self.g.create_node_fulltext_index("Searchable", "name") - except Exception: - pass + func(label, *args) + logging.debug(f"Successfully created/verified index for '{label}'.") + except ResponseError as e: # Catch specific DB response errors + if "already exists" in str(e).lower(): + logging.info(f"Index for '{label}' already exists.") + else: + logging.error(f"Database error creating index for '{label}': {e}", exc_info=True) + except Exception as e: # Catch other unexpected system errors + logging.error(f"Critical system failure during index creation for '{label}': {e}", exc_info=True) def clone(self, clone: str) -> "Graph": """ From a20785eb34770761bf76244dd5b2638169d6d9a1 Mon Sep 17 00:00:00 2001 From: Sudipta Date: Tue, 3 Feb 2026 23:19:36 +0530 Subject: [PATCH 2/3] fix(graph.py): raise critical errors in _safe_create_index --- .../falkor/code-graph-backend/api/graph.py | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/backend/app/database/falkor/code-graph-backend/api/graph.py b/backend/app/database/falkor/code-graph-backend/api/graph.py index 6ccec82f..cdb577c4 100644 --- a/backend/app/database/falkor/code-graph-backend/api/graph.py +++ b/backend/app/database/falkor/code-graph-backend/api/graph.py @@ -53,16 +53,19 @@ def __init__(self, name: str) -> None: self._safe_create_index(self.g.create_node_fulltext_index, "Searchable", "name") # index File path, name and ext fields def _safe_create_index(self, func, label, *args): - try: - func(label, *args) - logging.debug(f"Successfully created/verified index for '{label}'.") - except ResponseError as e: # Catch specific DB response errors - if "already exists" in str(e).lower(): - logging.info(f"Index for '{label}' already exists.") - else: - logging.error(f"Database error creating index for '{label}': {e}", exc_info=True) - except Exception as e: # Catch other unexpected system errors - logging.error(f"Critical system failure during index creation for '{label}': {e}", exc_info=True) + """Safely create an index, handling 'already exists' gracefully.""" + try: + func(label, *args) + logging.debug(f"Successfully created/verified index for '{label}'.") + except ResponseError as e: # Catch specific DB response errors + if "already exists" in str(e).lower(): + logging.info(f"Index for '{label}' already exists.") + else: + logging.error(f"Database error creating index for '{label}': {e}", exc_info=True) + raise # Propagate unexpected database errors + except Exception as e: # Catch other unexpected system errors + logging.error(f"Critical system failure during index creation for '{label}': {e}", exc_info=True) + raise def clone(self, clone: str) -> "Graph": """ From 4a47eb27be891870936d6381e82b35ae5e91e29c Mon Sep 17 00:00:00 2001 From: Sudipta Date: Tue, 3 Feb 2026 23:29:44 +0530 Subject: [PATCH 3/3] fix: correct indentation in _safe_create_index method --- .../falkor/code-graph-backend/api/graph.py | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/backend/app/database/falkor/code-graph-backend/api/graph.py b/backend/app/database/falkor/code-graph-backend/api/graph.py index cdb577c4..2cac5186 100644 --- a/backend/app/database/falkor/code-graph-backend/api/graph.py +++ b/backend/app/database/falkor/code-graph-backend/api/graph.py @@ -53,19 +53,19 @@ def __init__(self, name: str) -> None: self._safe_create_index(self.g.create_node_fulltext_index, "Searchable", "name") # index File path, name and ext fields def _safe_create_index(self, func, label, *args): - """Safely create an index, handling 'already exists' gracefully.""" - try: - func(label, *args) - logging.debug(f"Successfully created/verified index for '{label}'.") - except ResponseError as e: # Catch specific DB response errors - if "already exists" in str(e).lower(): - logging.info(f"Index for '{label}' already exists.") - else: - logging.error(f"Database error creating index for '{label}': {e}", exc_info=True) + """Safely create an index, handling 'already exists' gracefully.""" + try: + func(label, *args) + logging.debug(f"Successfully created/verified index for '{label}'.") + except ResponseError as e: # Catch specific DB response errors + if "already exists" in str(e).lower(): + logging.info(f"Index for '{label}' already exists.") + else: + logging.error(f"Database error creating index for '{label}': {e}", exc_info=True) raise # Propagate unexpected database errors - except Exception as e: # Catch other unexpected system errors - logging.error(f"Critical system failure during index creation for '{label}': {e}", exc_info=True) - raise + except Exception as e: # Catch other unexpected system errors + logging.error(f"Critical system failure during index creation for '{label}': {e}", exc_info=True) + raise def clone(self, clone: str) -> "Graph": """