Tencent/WeKnora · error

knowledge service is unavailable for tag-scoped graph filter

Error message

knowledge service is unavailable for tag-scoped graph filtering

What it means

Dependency guard during tag-scoped graph filtering: the request scope includes tag-scoped targets, which require tag resolution via the knowledge service, but that service handle is nil, so tag-based filtering cannot proceed and fails fast.

Source

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

	remainingIDs := make([]string, 0, len(results))
	for _, result := range results {
		if result == nil || result.KnowledgeID == "" {
			continue
		}
		if result.KnowledgeBaseID != "" && result.KnowledgeBaseID != kbID {
			return nil, fmt.Errorf(
				"graph result document %s belongs to knowledge base %s, expected %s",
				result.KnowledgeID, result.KnowledgeBaseID, kbID,
			)
		}
		if _, ok := explicitSet[result.KnowledgeID]; !ok {
			remainingIDs = append(remainingIDs, result.KnowledgeID)
		}
	}
	var tagMatches map[string]bool
	if len(tagIDs) > 0 {
		if knowledgeService == nil {
			return nil, fmt.Errorf("knowledge service is unavailable for tag-scoped graph filtering")
		}
		var err error
		tagMatches, err = knowledgeIDsMatchingAnyTag(
			ctx, remainingIDs, tagIDs, knowledgeService.GetKnowledgeTags,
		)
		if err != nil {
			return nil, fmt.Errorf("failed to validate graph result scope: %w", err)
		}
	}

	filtered := make([]*types.SearchResult, 0, len(results))
	for _, result := range results {
		if result == nil || result.KnowledgeID == "" {
			continue
		}
		_, explicit := explicitSet[result.KnowledgeID]
		if explicit || tagMatches[result.KnowledgeID] {
			filtered = append(filtered, result)

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Ensure the knowledge service is wired into the filter call path
  2. Avoid tag-scoped targets when the service is unavailable
  3. Fall back to explicit-ID-only filtering when tags cannot be resolved
Defensive patterns

Strategy: type-guard

When it happens

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