From 48c5e12ac1d581680fd75759e442f289718e96c7 Mon Sep 17 00:00:00 2001 From: Andy Lee Date: Fri, 25 Jul 2025 01:23:47 -0700 Subject: [PATCH] fix: use absolute path for passages_file to prevent FileNotFoundError When embedding server is launched as a subprocess, it may run in a different working directory. Using absolute paths ensures the server can always find the metadata file regardless of where it's launched from. --- packages/leann-core/src/leann/searcher_base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/leann-core/src/leann/searcher_base.py b/packages/leann-core/src/leann/searcher_base.py index 6bd6ec8..0c152aa 100644 --- a/packages/leann-core/src/leann/searcher_base.py +++ b/packages/leann-core/src/leann/searcher_base.py @@ -112,8 +112,9 @@ class BaseSearcher(LeannBackendSearcherInterface, ABC): passages_source_file = ( self.index_dir / f"{self.index_path.name}.meta.json" ) + # Convert to absolute path to ensure server can find it zmq_port = self._ensure_server_running( - str(passages_source_file), zmq_port + str(passages_source_file.resolve()), zmq_port ) return self._compute_embedding_via_server([query], zmq_port)[