What's wrong
MemgraphVectorStorage.query() in integrations/lightrag-memgraph/src/lightrag_memgraph/vector_impl.py silently drops any vector-search candidate that no longer exists (dead due to Memgraph's deferred GC after a delete) — with no signal to the caller that fewer than top_k genuinely-live results were found.
If a bulk delete just ran, a query could return fewer than top_k (or zero) live results with no indication the shortfall is due to GC lag rather than a genuine lack of matching content. LightRAG's retrieval pipeline (and any other caller) has no way to distinguish "nothing else was similar enough" from "results were silently discarded".
Acceptance criteria
Blocked by
None - can start immediately
What's wrong
MemgraphVectorStorage.query()inintegrations/lightrag-memgraph/src/lightrag_memgraph/vector_impl.pysilently drops any vector-search candidate that no longer exists (dead due to Memgraph's deferred GC after a delete) — with no signal to the caller that fewer thantop_kgenuinely-live results were found.If a bulk delete just ran, a query could return fewer than
top_k(or zero) live results with no indication the shortfall is due to GC lag rather than a genuine lack of matching content. LightRAG's retrieval pipeline (and any other caller) has no way to distinguish "nothing else was similar enough" from "results were silently discarded".Acceptance criteria
query()logs (at least at debug/warning level) when the rawvector_search.search()hit count differs from the live-candidate count returned, including the countsBlocked by
None - can start immediately