{"record":{"id":"a7cf0d62030c4178","repo":"Tencent/WeKnora","slug":"invalid-zhipu-content-size-s","errorCode":null,"errorMessage":"invalid Zhipu content size: %s","messagePattern":"invalid Zhipu content size: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/infrastructure/web_search/zhipu.go","lineNumber":80,"sourceCode":"\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}\n\n// Name returns the provider name.\nfunc (p *ZhipuProvider) Name() string {","sourceCodeStart":62,"sourceCodeEnd":98,"githubUrl":"https://github.com/Tencent/WeKnora/blob/988cbb03305e055d8ebb7d46d9ac6cc0803cd074/internal/infrastructure/web_search/zhipu.go#L62-L98","documentation":"Returned by ValidateZhipuParameters when the content size option derived from ExtraConfig is not one of Zhipu's accepted values. It bounds how much page content Zhipu returns per result; an unrecognized value fails provider configuration.","triggerScenarios":"Calling NewZhipuProvider / ValidateZhipuParameters with ExtraConfig[\"content_size\"] set to a value not in the allowed set (e.g. \"huge\" instead of the supported small/medium/large-style values).","commonSituations":"Typos, using values from other providers' config formats, guessing allowed values without checking validZhipuContentSizes, or config generated from outdated documentation.","solutions":["Set content_size in ExtraConfig to a supported Zhipu value","Remove the key to use the default content size"],"exampleFix":"// before\ncfg := map[string]string{\"content_size\": \"huge\"}\n// after\ncfg := map[string]string{\"content_size\": \"high\"} // must be a validZhipuContentSizes member","handlingStrategy":"validation","validationCode":"func validateContentSize(cfg map[string]string) error {\n    s := cfg[\"content_size\"]\n    if s == \"\" { return nil } // default applies\n    for _, v := range validZhipuContentSizes { if s == v { return nil } }\n    return fmt.Errorf(\"unsupported content_size %q\", s)\n}","typeGuard":null,"tryCatchPattern":"provider, err := NewZhipuProvider(params)\nif err != nil {\n    if strings.Contains(err.Error(), \"invalid Zhipu content size\") {\n        return fmt.Errorf(\"check ExtraConfig[content_size]; allowed values are in validZhipuContentSizes: %w\", err)\n    }\n    return err\n}","preventionTips":["Omit content_size to use the default","Whitelist allowed sizes in application config validation","Verify values against the library's validZhipuContentSizes map","Document accepted values where the config is authored"],"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"}