{"record":{"id":"e228f62d2c8b9c1d","repo":"Tencent/WeKnora","slug":"invalid-zhipu-search-engine-s","errorCode":null,"errorMessage":"invalid Zhipu search engine: %s","messagePattern":"invalid Zhipu search engine: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/infrastructure/web_search/zhipu.go","lineNumber":77,"sourceCode":"\t}\n\tsearchEngine, contentSize := zhipuOptions(params.ExtraConfig)\n\treturn &ZhipuProvider{\n\t\tclient:       client,\n\t\tbaseURL:      defaultZhipuSearchURL,\n\t\tapiKey:       strings.TrimSpace(params.APIKey),\n\t\tsearchEngine: searchEngine,\n\t\tcontentSize:  contentSize,\n\t}, nil\n}\n\n// ValidateZhipuParameters validates credentials and provider-specific options.\nfunc ValidateZhipuParameters(params types.WebSearchProviderParameters) error {\n\tif strings.TrimSpace(params.APIKey) == \"\" {\n\t\treturn fmt.Errorf(\"API key is required for Zhipu provider\")\n\t}\n\tsearchEngine, contentSize := zhipuOptions(params.ExtraConfig)\n\tif _, ok := validZhipuSearchEngines[searchEngine]; !ok {\n\t\treturn fmt.Errorf(\"invalid Zhipu search engine: %s\", searchEngine)\n\t}\n\tif _, ok := validZhipuContentSizes[contentSize]; !ok {\n\t\treturn fmt.Errorf(\"invalid Zhipu content size: %s\", contentSize)\n\t}\n\treturn nil\n}\n\nfunc zhipuOptions(extraConfig map[string]string) (searchEngine, contentSize string) {\n\tsearchEngine = defaultZhipuSearchEngine\n\tcontentSize = defaultZhipuContentSize\n\tif value := strings.TrimSpace(extraConfig[\"search_engine\"]); value != \"\" {\n\t\tsearchEngine = value\n\t}\n\tif value := strings.TrimSpace(extraConfig[\"content_size\"]); value != \"\" {\n\t\tcontentSize = value\n\t}\n\treturn searchEngine, contentSize\n}","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/Tencent/WeKnora/blob/988cbb03305e055d8ebb7d46d9ac6cc0803cd074/internal/infrastructure/web_search/zhipu.go#L59-L95","documentation":"Returned by ValidateZhipuParameters when the search engine derived from ExtraConfig is not in validZhipuSearchEngines. Zhipu's Web Search API only accepts a fixed set of engine values, so an unknown entry makes the whole provider configuration invalid at creation time.","triggerScenarios":"Calling NewZhipuProvider / ValidateZhipuParameters with ExtraConfig[\"search_engine\"] set to a value not in the allowed set (e.g. \"google\", a typo like \"search_std_v2\" vs the supported keys).","commonSituations":"Copy-pasting engine names from other providers' configs, typos or wrong casing, using an engine name from an outdated Zhipu API version, or misreading documentation.","solutions":["Set search_engine in ExtraConfig to one of the supported Zhipu engines","Remove the search_engine key to fall back to the default engine"],"exampleFix":"// before\ncfg := map[string]string{\"search_engine\": \"google\"}\n// after\ncfg := map[string]string{\"search_engine\": \"search_std_v2\"} // must be a validZhipuSearchEngines member","handlingStrategy":"validation","validationCode":"func validateSearchEngine(cfg map[string]string) error {\n    e := cfg[\"search_engine\"]\n    if e == \"\" { return nil } // default applies\n    for _, v := range validZhipuSearchEngines { if e == v { return nil } }\n    return fmt.Errorf(\"unsupported search_engine %q\", e)\n}","typeGuard":null,"tryCatchPattern":"provider, err := NewZhipuProvider(params)\nif err != nil {\n    if strings.Contains(err.Error(), \"invalid Zhipu search engine\") {\n        return fmt.Errorf(\"check ExtraConfig[search_engine]; allowed values are in validZhipuSearchEngines: %w\", err)\n    }\n    return err\n}","preventionTips":["Keep a whitelist constant of allowed engine names in your app config","Omit the option to use the provider default","Copy option names from the library source, not memory","Add a config schema validation step at startup"],"tags":["configuration","validation","zhipu","web-search"],"backgroundTag":"invalid-config-option","analyzedSha":"988cbb03305e055d8ebb7d46d9ac6cc0803cd074","analyzedAt":"2026-09-02T14:41:08.344Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}