Tencent/WeKnora · error

failed to ensure FAQ knowledge: %w

Error message

failed to ensure FAQ knowledge: %w

What it means

Thrown when ensureFAQKnowledge fails to find or create the FAQ-type knowledge record for the knowledge base before importing entries. Wraps the underlying repository/persistence error; fires when the FAQ knowledge row is missing and cannot be auto-created, or the database is unreachable.

Source

Thrown at internal/application/service/knowledge_faq_import.go:70

		taskID = secutils.GenerateTaskID("faq_import", tenantID, kbID)
	}

	var knowledgeID string

	// 检查是否有正在进行的导入任务(通过Redis)
	runningTaskID, err := s.getRunningFAQImportTaskID(ctx, kbID)
	if err != nil {
		logger.Errorf(ctx, "Failed to check running import task: %v", err)
		// 检查失败不影响导入,继续执行
	} else if runningTaskID != "" {
		logger.Warnf(ctx, "Import task already running for KB %s: %s", kbID, runningTaskID)
		return "", werrors.NewBadRequestError(fmt.Sprintf("该知识库已有导入任务正在进行中(任务ID: %s),请等待完成后再试", runningTaskID))
	}

	// 确保 FAQ knowledge 存在
	faqKnowledge, err := s.ensureFAQKnowledge(ctx, tenantID, kb)
	if err != nil {
		return "", fmt.Errorf("failed to ensure FAQ knowledge: %w", err)
	}
	knowledgeID = faqKnowledge.ID

	// 记录任务入队时间
	enqueuedAt := time.Now().Unix()
	instanceID := uuid.NewString()
	runningInfoSet := false
	enqueueSucceeded := false

	// 设置 KB 的运行中任务信息
	if err := s.setRunningFAQImportInfo(ctx, kbID, &runningFAQImportInfo{
		TaskID:     taskID,
		EnqueuedAt: enqueuedAt,
		InstanceID: instanceID,
	}); err != nil {
		logger.Errorf(ctx, "Failed to set running FAQ import task info: %v", err)
		// 不影响任务执行,继续
	} else {

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Check database connectivity and retry the import
  2. Verify the knowledge base exists and the FAQ knowledge record can be created (tenant quota, permissions)
  3. Inspect the wrapped error for the exact repository failure
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at internal/application/service/knowledge_faq_import.go:70 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02). Data as JSON: /api/errors/25f41c9e4429144e. Report an issue: GitHub.