Tencent/WeKnora · error

failed to get FAQ knowledge: %w

Error message

failed to get FAQ knowledge: %w

What it means

Thrown by saveFAQImportResultToDatabase when repo.GetKnowledgeByID fails to load the FAQ knowledge record for the imported knowledge ID. A persistence-layer failure (or the knowledge was deleted mid-import), preventing result statistics from being written.

Source

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

// csvEscape 转义 CSV 字段
func csvEscape(s string) string {
	if strings.ContainsAny(s, ",\"\n\r") {
		// 将内部引号替换为两个引号,并用引号包裹整个字段
		return "\"" + strings.ReplaceAll(s, "\"", "\"\"") + "\""
	}
	return s
}

// saveFAQImportResultToDatabase 保存FAQ导入结果统计到数据库
func (s *knowledgeService) saveFAQImportResultToDatabase(ctx context.Context,
	payload *types.FAQImportPayload, progress *types.FAQImportProgress, originalTotalEntries int,
) error {
	// 获取FAQ知识库实例
	tenantID := ctx.Value(types.TenantIDContextKey).(uint64)
	knowledge, err := s.repo.GetKnowledgeByID(ctx, tenantID, payload.KnowledgeID)
	if err != nil {
		return fmt.Errorf("failed to get FAQ knowledge: %w", err)
	}

	// 计算跳过的条目数(总数 - 完全成功 - 部分失败 - 完全失败)
	skippedCount := originalTotalEntries - progress.SuccessCount - progress.PartialFailedCount - progress.FailedCount
	if skippedCount < 0 {
		skippedCount = 0
	}

	// 创建导入结果统计
	importResult := &types.FAQImportResult{
		TotalEntries:       originalTotalEntries,
		SuccessCount:       progress.SuccessCount,
		FailedCount:        progress.FailedCount,
		PartialFailedCount: progress.PartialFailedCount,
		SkippedCount:       skippedCount,
		MergedCount:        progress.MergedCount,
		AddedCount:         progress.AddedCount,
		ImportMode:         payload.Mode,

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Check database connectivity
  2. Verify the knowledge record still exists and belongs to the tenant (not deleted during import)
  3. Inspect the wrapped repository error for constraint/timeout details
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at internal/application/service/knowledge_faq_import.go:316 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/eed7dfc0b85a7e9a. Report an issue: GitHub.