Crosstalk-Solutions/project-nomad · error

Error during re-embed all

Error message

Error during re-embed all

What it means

Catch-all 500: ragService.reembedAll() threw while re-embedding every document (embedding API failures, Qdrant write errors, or DB iteration errors).

Source

Thrown at admin/app/controllers/rag_controller.ts:197

  }

  public async scanAndSync({ response }: HttpContext) {
    try {
      const syncResult = await this.ragService.scanAndSyncStorage()
      return response.status(200).json(syncResult)
    } catch (error) {
      logger.error({ err: error }, '[RagController] Error scanning and syncing storage')
      return response.status(500).json({ error: 'Error scanning and syncing storage' })
    }
  }

  public async reembedAll({ response }: HttpContext) {
    try {
      const result = await this.ragService.reembedAll()
      return response.status(200).json(result)
    } catch (error) {
      logger.error({ err: error }, '[RagController] Error during re-embed all')
      return response.status(500).json({ error: 'Error during re-embed all' })
    }
  }

  public async resetAndRebuild({ response }: HttpContext) {
    try {
      const result = await this.ragService.resetAndRebuild()
      return response.status(200).json(result)
    } catch (error) {
      logger.error({ err: error }, '[RagController] Error during reset and rebuild')
      return response.status(500).json({ error: 'Error during reset and rebuild' })
    }
  }

  public async health({ response }: HttpContext) {
    const result = await this.ragService.checkQdrantHealth()
    return response.status(200).json(result)
  }

View on GitHub (pinned to 0bd1c6f4f9)

Solutions

  1. Check embedding provider credentials and connectivity first.
  2. Confirm embedding model/dimensions match the existing Qdrant collection config.
  3. Check server logs for the exact thrown error.
  4. If dims changed, recreate the collection (resetAndRebuild) or point to the correct model.
Defensive patterns

Strategy: retry

Validate before calling

await embeddingProvider.ping() // verify provider reachable
await qdrantHealth()

Try / catch

for (let i = 0; i < 3; i++) { try { await reembedAll(); break } catch (e) { await sleep(backoff(i)) } }

Prevention

When it happens

Trigger: Embedding provider (OpenAI/local embedder) unreachable, out of quota, or rate-limited; Qdrant write failure; invalid embedding dimension vs collection config.

Common situations: Missing/expired EMBEDDINGS_API_KEY; embedding model changed so vector dims no longer match the Qdrant collection; rate limits on a large corpus; Qdrant container restarted mid-run.

Related errors


AI-assisted analysis of Crosstalk-Solutions/project-nomad@0bd1c6f4f9 (2026-08-27). Data as JSON: /api/errors/88ced1a9cd98c3cb. Report an issue: GitHub.