Frontmatter
| id | 9697 |
| title | Fix: GraphService direct lookups fail on Lazy Loading cache misses |
| state | Closed |
| labels | bugai |
| assignees | tobiu |
| createdAt | Apr 4, 2026, 6:13 PM |
| updatedAt | Apr 4, 2026, 6:13 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9697 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9673 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Apr 4, 2026, 6:13 PM |
Fix: GraphService direct lookups fail on Lazy Loading cache misses
Closedbugai
tobiu added parent issue #9673 on Apr 4, 2026, 6:13 PM
tobiu assigned to @tobiu on Apr 4, 2026, 6:13 PM

tobiu
Apr 4, 2026, 6:13 PM
Fix committed and pushed. Explicit lazy loading added to GraphService.
tobiu closed this issue on Apr 4, 2026, 6:13 PM
tobiu cross-referenced by #9699 on Apr 4, 2026, 6:44 PM
Problem
After the implementation of Distributed Caching & Lazy Loading for the Native Edge Graph Database, the Graph DB no longer synchronously loads all nodes into the in-memory cache upon initialization. However, methods inside
memory-core/services/GraphService.mjssuch asgetContextFrontier,getNode, andgetNeighborswere still synchronously querying the empty local memory store viathis.db.nodes.get(id). This resulted innullresponses (e.g., "No context frontier configured") because the methods failed to trigger a lazy load from SQLite first.Solution
Explicitly enforce lazy loading ahead of direct memory queries.
this.db.getAdjacentNodes([id], 'both')securely preceding the memory queries insideGraphService.mjs. This guarantees that if a node is actively a cache miss, the engine drops down to SQLite to retrieve it and its vicinity.Epic Link
This is a sub-issue of Epic #9673 (Hybrid GraphRAG).