fix: Handle `is_search_module_loaded` for redis version < 4.0.0 (#27574)
- Return False if error occurs
diff --git a/erpnext/e_commerce/redisearch.py b/erpnext/e_commerce/redisearch.py
index d0626a3..00265e2 100644
--- a/erpnext/e_commerce/redisearch.py
+++ b/erpnext/e_commerce/redisearch.py
@@ -20,14 +20,16 @@
return [df.fieldname for df in valid_fields]
def is_search_module_loaded():
- cache = frappe.cache()
- out = cache.execute_command('MODULE LIST')
+ try:
+ cache = frappe.cache()
+ out = cache.execute_command('MODULE LIST')
- parsed_output = " ".join(
- (" ".join([s.decode() for s in o if not isinstance(s, int)]) for o in out)
- )
-
- return "search" in parsed_output
+ parsed_output = " ".join(
+ (" ".join([s.decode() for s in o if not isinstance(s, int)]) for o in out)
+ )
+ return "search" in parsed_output
+ except Exception:
+ return False
def if_redisearch_loaded(function):
"Decorator to check if Redisearch is loaded."