Tencent/WeKnora · error
web search provider not found: %s
Error message
web search provider not found: %s
What it means
Resolution failure in WebSearchService.resolveProvider: a provider entity was previously looked up (or a name given) but the provider registry could not construct/locate a matching web search provider implementation. The %s names the requested provider; it fires when the stored provider type is unknown to the registry or the provider record vanished, blocking the Search flow.
Source
Thrown at internal/application/service/web_search.go:105
// 2. The deprecated config.Provider field (backward compatibility) — creates with empty params
func (s *WebSearchService) resolveProvider(
ctx context.Context,
providerID string,
cfg *types.WebSearchConfig,
) (interfaces.WebSearchProvider, error) {
// New path: load provider entity from DB
if providerID != "" {
tenantID, ok := types.TenantIDFromContext(ctx)
if !ok {
return nil, fmt.Errorf("workspace ID not found in context")
}
entity, err := s.providerRepo.GetByID(ctx, tenantID, providerID)
if err != nil {
return nil, fmt.Errorf("failed to load web search provider %s: %w", providerID, err)
}
if entity == nil {
return nil, fmt.Errorf("web search provider not found: %s", providerID)
}
params := mergeProxyFromWebSearchConfig(entity.Parameters, cfg)
provider, err := s.registry.CreateProvider(string(entity.Provider), params)
if err != nil {
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 {View on GitHub (pinned to 988cbb0330)
Solutions
- Confirm the providerID (config may be stale after deletion)
- List available providers for the tenant and pick a valid one
- Recreate the provider entity if it was removed
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/application/service/web_search.go:105 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/e48a08de91e28c06.
Report an issue: GitHub.