{"record":{"id":"1ed5b9b49cad8c8a","repo":"Tencent/WeKnora","slug":"invalid-provider-type-s","errorCode":null,"errorMessage":"invalid provider type: %s","messagePattern":"invalid provider type: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/application/service/web_search_provider.go","lineNumber":30,"sourceCode":"\n// webSearchProviderService implements interfaces.WebSearchProviderService\ntype webSearchProviderService struct {\n\trepo interfaces.WebSearchProviderRepository\n}\n\n// NewWebSearchProviderService creates a new web search provider service\nfunc NewWebSearchProviderService(repo interfaces.WebSearchProviderRepository) interfaces.WebSearchProviderService {\n\treturn &webSearchProviderService{repo: repo}\n}\n\n// CreateProvider creates a new web search provider configuration.\nfunc (s *webSearchProviderService) CreateProvider(ctx context.Context, provider *types.WebSearchProviderEntity) error {\n\tif provider.TenantID == 0 {\n\t\treturn fmt.Errorf(\"tenant ID is required\")\n\t}\n\n\tif !isValidProviderType(provider.Provider) {\n\t\treturn fmt.Errorf(\"invalid provider type: %s\", provider.Provider)\n\t}\n\n\tif err := validateProviderParameters(provider.Provider, provider.Parameters); err != nil {\n\t\treturn err\n\t}\n\n\tif provider.IsDefault {\n\t\tif err := s.repo.ClearDefault(ctx, provider.TenantID, \"\"); err != nil {\n\t\t\tlogger.Warnf(ctx, \"Failed to clear default providers: %v\", err)\n\t\t}\n\t}\n\n\tlogger.Infof(ctx, \"Creating web search provider: tenant=%d, name=%s, type=%s\", provider.TenantID, provider.Name, provider.Provider)\n\treturn s.repo.Create(ctx, provider)\n}\n\n// UpdateProvider updates an existing provider.\nfunc (s *webSearchProviderService) UpdateProvider(ctx context.Context, provider *types.WebSearchProviderEntity) error {","sourceCodeStart":12,"sourceCodeEnd":48,"githubUrl":"https://github.com/Tencent/WeKnora/blob/988cbb03305e055d8ebb7d46d9ac6cc0803cd074/internal/application/service/web_search_provider.go#L12-L48","documentation":"Validation in webSearchProviderService.CreateProvider: the provider entity's Provider type string is not one of the recognized web search provider types (Bing, Google, Tavily, Baidu, Searxng, etc.). The %s echoes the rejected value; the entity is rejected before persistence so no unusable provider config reaches the registry.","triggerScenarios":"Thrown at internal/application/service/web_search_provider.go:30 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Send a supported provider type (bing, google, tavily, searxng, etc.)","Check the API handler's type binding/enum mapping","Fix the entity payload before persisting"],"exampleFix":null,"handlingStrategy":"validation","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"}