Tencent/WeKnora · error

web search provider %s is not available: %w

Error message

web search provider %s is not available: %w

What it means

In the backward-compatibility path, registry.CreateProvider failed for the deprecated config.Provider field (unknown provider name or invalid params like missing API key). The warning above it notes this legacy path should migrate to provider entities.

Source

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

		}

		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 {
			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.

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Migrate to a WebSearchProviderEntity instead of config.Provider
  2. Supply required parameters (e.g. API key) in WebSearchConfig
  3. Use a supported provider type name
Defensive patterns

Strategy: try-catch

When it happens

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