Tencent/WeKnora · error

empty result

Error message

empty result

What it means

Sentinel inner error produced when GetKnowledgeByIDOnly returns no error but a nil Knowledge: the storage layer 'succeeded' with an empty result, so this guard substitutes a non-nil error so the caller's not-found wrapping has something to chain.

Source

Thrown at internal/agent/tools/scope_authorization.go:75

// decoding is necessary but never sufficient: the durable document must also
// belong to the server-owned search scope for this Agent execution.
func authorizeKnowledgeInSearchTargets(
	ctx context.Context,
	searchTargets types.SearchTargets,
	knowledgeID string,
	knowledgeService interfaces.KnowledgeService,
) (*types.Knowledge, error) {
	knowledgeID = strings.TrimSpace(knowledgeID)
	if knowledgeID == "" {
		return nil, fmt.Errorf("knowledge_id is required")
	}
	if knowledgeService == nil {
		return nil, fmt.Errorf("knowledge service is unavailable")
	}
	knowledge, err := knowledgeService.GetKnowledgeByIDOnly(ctx, knowledgeID)
	if err != nil || knowledge == nil {
		if err == nil {
			err = fmt.Errorf("empty result")
		}
		return nil, fmt.Errorf("document %s not found: %w", knowledgeID, err)
	}
	if !searchTargets.ContainsKB(knowledge.KnowledgeBaseID) {
		return nil, fmt.Errorf("knowledge base %s is not within the current Agent scope", knowledge.KnowledgeBaseID)
	}
	allowed, err := searchTargetsAllowKnowledgeID(
		ctx, searchTargets, knowledge.ID, knowledge.KnowledgeBaseID, knowledgeService,
	)
	if err != nil {
		return nil, fmt.Errorf("failed to validate document scope: %w", err)
	}
	if !allowed {
		return nil, fmt.Errorf("document %s is not within the current @mention scope", knowledge.ID)
	}
	return knowledge, nil
}

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Treat as 'document does not exist' and handle the not-found path
  2. Verify the knowledge_id spelling
  3. Ensure the storage layer returns a typed not-found error instead of nil,nil
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at internal/agent/tools/scope_authorization.go:75 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/8d9935a0b153b307. Report an issue: GitHub.