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
- Configure a web search provider for the tenant/session
- Pass providerID or set cfg.Provider (legacy) before calling Search
- 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.