Tencent/WeKnora · error

no web search provider configured

Error message

no web search provider configured

What it means

Configuration guard in WebSearchService.resolveProvider: neither a provider ID nor the deprecated config.Provider field was supplied, so the service has no web search backend to delegate to. It fires when Search is called with an empty WebSearchConfig — i.e., web search was never configured for this workspace.

Source

Thrown at internal/application/service/web_search.go:129

			return nil, fmt.Errorf("failed to create provider %s (%s): %w", entity.Name, entity.Provider, err)
		}
		return provider, nil
	}

	// Backward compatibility: use the deprecated config.Provider field
	if cfg.Provider != "" {
		logger.Warnf(ctx, "Using deprecated WebSearchConfig.Provider field: %s. Please migrate to WebSearchProviderEntity.", cfg.Provider)
		params := mergeProxyFromWebSearchConfig(types.WebSearchProviderParameters{
			APIKey: cfg.APIKey,
		}, cfg)
		provider, err := s.registry.CreateProvider(cfg.Provider, params)
		if err != nil {
			return nil, fmt.Errorf("web search provider %s is not available: %w", cfg.Provider, err)
		}
		return provider, nil
	}

	return nil, fmt.Errorf("no web search provider configured")
}

// mergeProxyFromWebSearchConfig applies cfg.ProxyURL over stored provider params when non-empty (call-time override).
func mergeProxyFromWebSearchConfig(base types.WebSearchProviderParameters, cfg *types.WebSearchConfig) types.WebSearchProviderParameters {
	if cfg != nil {
		if pu := strings.TrimSpace(cfg.ProxyURL); pu != "" {
			base.ProxyURL = pu
		}
	}
	return base
}

// CompressWithRAG performs RAG-based compression using a temporary, hidden knowledge base.
// The temporary knowledge base is deleted after use. The UI will not list it due to repo filtering.
func (s *WebSearchService) CompressWithRAG(
	ctx context.Context, sessionID string, tempKBID string, questions []string,
	webSearchResults []*types.WebSearchResult, cfg *types.WebSearchConfig,
	kbSvc interfaces.KnowledgeBaseService, knowSvc interfaces.KnowledgeService,

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Configure a web search provider for the tenant/session
  2. Pass providerID or set cfg.Provider (legacy) before calling Search
  3. Surface a config-required error to the user/UI
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/application/service/web_search.go:129 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/df32f81ae0819dee. Report an issue: GitHub.