abhigyanpatwari/GitNexus · error

Embedding generation completed without persisted…

Error message

Embedding generation completed without persisted embeddings. The index was not registered to avoid silently reporting embeddings: 0. Check the embedding endpoint/model configuration (GITNEXUS_EMBEDDING_URL / GITNEXUS_EMBEDDING_MODEL) and re-run `gitnexus analyze --embeddings`; the graph itself is unaffected, so `--drop-embeddings` indexes without them.

What it means

Error "Embedding generation completed without persisted embeddings. The index was not registered to avoid silently reporting embeddings: 0. Check the embedding endpoint/model configuration (GITNEXUS_EMBEDDING_URL / GITNEXUS_EMBEDDING_MODEL) and re-run `gitnexus analyze --embeddings`; the graph itself is unaffected, so `--drop-embeddings` indexes without them." thrown in abhigyanpatwari/GitNexus.

When it happens

Trigger: Thrown at gitnexus/src/core/run-analyze.ts:3341 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of abhigyanpatwari/GitNexus@ac9a4e9abd (2026-08-20). Data as JSON: /api/errors/6c1ba5c3fc16e974. Report an issue: GitHub.

Appendix: source

Thrown at gitnexus/src/core/run-analyze.ts:4117

    //   1. the pipeline never ran (cap-skipped / not requested) —
    //      `embeddingSkipped`, still short-circuited;
    //   2. the pipeline ran but had NOTHING to embed (totalNodes 0 after the
    //      incremental filter — e.g. a resume whose pending sweep deleted the
    //      last rows) over a legitimately empty table;
    //   3. the count query failed or answered non-numerically (above) — a
    //      diagnostic failure, not an indexing failure;
    //   4. the pipeline embedded and NOTHING persisted — the real defect.
    // Only (4) throws. `attemptedEmbedding` is what separates it from (2):
    // `nodesProcessed` is now the REAL completed-node count and
    // `failedNodeIds` names the nodes whose rows were dropped, so
    // "attempted" ≡ at least one node was walked to a conclusion.
    const attemptedEmbedding =
      !embeddingSkipped &&
      embeddingResult !== undefined &&
      (embeddingResult.nodesProcessed > 0 || embeddingResult.failedNodeIds.length > 0);

    if (attemptedEmbedding && stats.nodes > 0 && embeddingCount === 0) {
      throw new Error(
        'Embedding generation completed without persisted embeddings. ' +
          'The index was not registered to avoid silently reporting embeddings: 0. ' +
          'Check the embedding endpoint/model configuration (GITNEXUS_EMBEDDING_URL / ' +
          'GITNEXUS_EMBEDDING_MODEL) and re-run `gitnexus analyze --embeddings`; ' +
          'the graph itself is unaffected, so `--drop-embeddings` indexes without them.',
      );
    }

    if (embeddingCount === undefined) {
      log(
        'Warning: registering the index without a verified embedding count — the count query ' +
          'did not answer, so stats.embeddings falls back to the last known value. ' +
          'Re-run `gitnexus analyze --embeddings` if semantic search comes back empty.',
      );
    }

    // ── An unverifiable count must leave a way back (#2790) ───────────────
    // The carry-forward below is a GUESS, and the guess is load-bearing (see

View on GitHub (pinned to ac9a4e9abd)