{"record":{"id":"bafbfe932ff6d698","repo":"Tencent/WeKnora","slug":"web-search-provider-s-is-not-available-w","errorCode":null,"errorMessage":"web search provider %s is not available: %w","messagePattern":"web search provider (.+?) is not available: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/application/service/web_search.go","lineNumber":124,"sourceCode":"\t\t}\n\n\t\tparams := mergeProxyFromWebSearchConfig(entity.Parameters, cfg)\n\t\tprovider, err := s.registry.CreateProvider(string(entity.Provider), params)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to create provider %s (%s): %w\", entity.Name, entity.Provider, err)\n\t\t}\n\t\treturn provider, nil\n\t}\n\n\t// Backward compatibility: use the deprecated config.Provider field\n\tif cfg.Provider != \"\" {\n\t\tlogger.Warnf(ctx, \"Using deprecated WebSearchConfig.Provider field: %s. Please migrate to WebSearchProviderEntity.\", cfg.Provider)\n\t\tparams := mergeProxyFromWebSearchConfig(types.WebSearchProviderParameters{\n\t\t\tAPIKey: cfg.APIKey,\n\t\t}, cfg)\n\t\tprovider, err := s.registry.CreateProvider(cfg.Provider, params)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"web search provider %s is not available: %w\", cfg.Provider, err)\n\t\t}\n\t\treturn provider, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"no web search provider configured\")\n}\n\n// mergeProxyFromWebSearchConfig applies cfg.ProxyURL over stored provider params when non-empty (call-time override).\nfunc mergeProxyFromWebSearchConfig(base types.WebSearchProviderParameters, cfg *types.WebSearchConfig) types.WebSearchProviderParameters {\n\tif cfg != nil {\n\t\tif pu := strings.TrimSpace(cfg.ProxyURL); pu != \"\" {\n\t\t\tbase.ProxyURL = pu\n\t\t}\n\t}\n\treturn base\n}\n\n// CompressWithRAG performs RAG-based compression using a temporary, hidden knowledge base.","sourceCodeStart":106,"sourceCodeEnd":142,"githubUrl":"https://github.com/Tencent/WeKnora/blob/988cbb03305e055d8ebb7d46d9ac6cc0803cd074/internal/application/service/web_search.go#L106-L142","documentation":"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.","triggerScenarios":"Thrown at internal/application/service/web_search.go:124 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Migrate to a WebSearchProviderEntity instead of config.Provider","Supply required parameters (e.g. API key) in WebSearchConfig","Use a supported provider type name"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"988cbb03305e055d8ebb7d46d9ac6cc0803cd074","analyzedAt":"2026-09-02T14:41:08.344Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}