Tencent/WeKnora · error
failed to get embedding model: %w
Error message
failed to get embedding model: %w
What it means
executeFAQImport wraps errors from modelService.GetEmbeddingModel when fetching the embedding model configured on the FAQ knowledge base; the model is needed for later index cleanup. If the model config is missing/broken or the model service errors, the import aborts before touching chunks.
Source
Thrown at internal/application/service/knowledge_faq_import.go:1383
buf := make([]byte, 8192)
n := runtime.Stack(buf, false)
stack := string(buf[:n])
logger.Errorf(ctx, "FAQ import task %s panicked: %v\n%s", taskID, r, stack)
err = fmt.Errorf("panic during FAQ import: %v", r)
}
}()
kb, err = s.validateFAQKnowledgeBase(ctx, kbID)
if err != nil {
return err
}
kb.EnsureDefaults()
// 获取embedding模型,用于后续清理索引
embeddingModel, err = s.modelService.GetEmbeddingModel(ctx, kb.EmbeddingModelID)
if err != nil {
return fmt.Errorf("failed to get embedding model: %w", err)
}
faqKnowledge, err := s.ensureFAQKnowledge(ctx, tenantID, kb)
if err != nil {
return err
}
// 获取索引模式
indexMode := types.FAQIndexModeQuestionOnly
if kb.FAQConfig != nil && kb.FAQConfig.IndexMode != "" {
indexMode = kb.FAQConfig.IndexMode
}
// 增量更新逻辑:计算需要处理的条目
var entriesToProcess []types.FAQEntryPayload
var chunksToDelete []*types.Chunk
var skippedCount int
if payload.Mode == types.FAQBatchModeReplace {View on GitHub (pinned to 988cbb0330)
Solutions
- Verify kb.EmbeddingModelID points to an existing, valid embedding model for the tenant
- Re-assign a valid embedding model on the knowledge base and retry the import
- Check model service health/configuration and its backing store
- Restore or recreate the missing model record if it was deleted
Example fix
// before
embeddingModel, err = s.modelService.GetEmbeddingModel(ctx, kb.EmbeddingModelID)
if err != nil {
return fmt.Errorf("failed to get embedding model: %w", err)
}
// after
embeddingModel, err = s.modelService.GetEmbeddingModel(ctx, kb.EmbeddingModelID)
if err != nil {
return fmt.Errorf("failed to get embedding model %s: %w", kb.EmbeddingModelID, err)
} Defensive patterns
Strategy: validation
Validate before calling
// Before creating/using a knowledge base, verify its embedding model resolves
m, err := modelService.GetEmbeddingModel(ctx, kb.EmbeddingModelID)
if err != nil || m == nil {
return fmt.Errorf("knowledge base %s references invalid embedding model %q", kb.ID, kb.EmbeddingModelID)
} Type guard
func (kb *types.KnowledgeBase) HasEmbeddingModel() bool {
return kb != nil && kb.EmbeddingModelID != ""
} Try / catch
err := ProcessFAQImport(ctx, taskID, kbID, payload)
if err != nil && strings.Contains(err.Error(), "failed to get embedding model") {
// configuration problem: do not retry, prompt admin to reassign the model
markTaskFailedWithHint(taskID, "reassign a valid embedding model to the knowledge base")
return err
}
return err Prevention
- Validate embeddingModelID against the model service at knowledge-base creation
- Prevent deleting embedding models still referenced by knowledge bases (FK or soft-delete)
- Keep model IDs consistent across environments; avoid copying DB dumps between envs
- Alert on GetEmbeddingModel not-found errors — they indicate config drift
When it happens
Trigger: kb.EmbeddingModelID references a model that no longer exists, belongs to another tenant, or the model service fails (DB error / service unavailable) at import time.
Common situations: Knowledge base created before the embedding model was deleted or re-created with a new ID; cross-environment DB restore (staging data pointing at prod model IDs); model service registry misconfiguration.
Related errors
- custom agent configuration is required for agent QA
- summary model (model_id) is not configured in custom agent s
- rerank model is not configured: please set rerank_model_id o
- JWKS document contains no keys
- cannot verify OIDC id_token: issuer is not configured
AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02).
Data as JSON: /api/errors/66a2f2b2560dda58.
Report an issue: GitHub.