Tencent/WeKnora · error
答案不能为空
Error message
答案不能为空
What it means
Basic FAQ import validation (validateFAQEntryPayloadBasic): the entry's Answers slice has zero elements. A FAQ entry must carry at least one answer candidate; an import row with an empty answers array is rejected during append/replace-mode validation.
Source
Thrown at internal/application/service/knowledge_faq_import.go:969
if s != "" && !seen[s] {
seen[s] = true
result = append(result, s)
}
}
return result
}
// validateFAQEntryPayloadBasic 验证 FAQ 条目的基本格式
func validateFAQEntryPayloadBasic(entry *types.FAQEntryPayload) error {
if entry == nil {
return fmt.Errorf("条目不能为空")
}
standardQ := strings.TrimSpace(entry.StandardQuestion)
if standardQ == "" {
return fmt.Errorf("标准问不能为空")
}
if len(entry.Answers) == 0 {
return fmt.Errorf("答案不能为空")
}
hasValidAnswer := false
for _, a := range entry.Answers {
if strings.TrimSpace(a) != "" {
hasValidAnswer = true
break
}
}
if !hasValidAnswer {
return fmt.Errorf("答案不能全为空")
}
return nil
}
type faqMergeOperation struct {
Entry types.FAQEntryPayload
ExistingChunk *types.Chunk
OldMeta *types.FAQChunkMetadataView on GitHub (pinned to 988cbb0330)
Solutions
- Add at least one answer to the failing entry
- Reject entries with empty answer arrays at the API layer
- Use dry-run mode to enumerate all affected rows
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/application/service/knowledge_faq_import.go:969 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/64fb513d4a092b6d.
Report an issue: GitHub.