{"record":{"id":"80494d75083782d7","repo":"googleapis/mcp-toolbox","slug":"failed-to-get-user-agent-from-context-w","errorCode":null,"errorMessage":"failed to get user agent from context: %w","messagePattern":"failed to get user agent from context: %w","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/embeddingmodels/gemini/gemini.go","lineNumber":106,"sourceCode":"\t} else if apiKey != \"\" {\n\t\t// Using Gemini API, which uses API Key for authentication.\n\t\tconfigs.Backend = genai.BackendGeminiAPI\n\t\tconfigs.APIKey = apiKey\n\n\t\tl.InfoContext(ctx, \"Using Google AI (Gemini API) backend for Gemini embedding\")\n\n\t} else {\n\t\t// Missing credentials\n\t\treturn nil, fmt.Errorf(\"missing credentials for Gemini embedding: \" +\n\t\t\t\"For Google AI: Provide 'apiKey' in YAML or set GOOGLE_API_KEY/GEMINI_API_KEY env vars. \" +\n\t\t\t\"For Vertex AI: Provide 'project'/'location' in YAML or via GOOGLE_CLOUD_PROJECT/GOOGLE_CLOUD_LOCATION env vars. \" +\n\t\t\t\"See documentation for details: https://mcp-toolbox.dev/documentation/configuration/embedding-models/gemini/\")\n\t}\n\n\t// Set user agent\n\tua, err := util.UserAgentFromContext(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get user agent from context: %w\", err)\n\t}\n\tconfigs.HTTPOptions = genai.HTTPOptions{\n\t\tHeaders: http.Header{\n\t\t\t\"User-Agent\": []string{ua},\n\t\t},\n\t}\n\n\t// Create new Gemini API client\n\tclient, err := genai.NewClient(ctx, configs)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to create Gemini API client: %w\", err)\n\t}\n\n\treturn &EmbeddingModel{\n\t\tConfig: cfg,\n\t\tClient: client,\n\t}, nil\n}","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/googleapis/mcp-toolbox/blob/8cc6e09de2ad7b8bffc77751799585a1401a48eb/internal/embeddingmodels/gemini/gemini.go#L88-L124","documentation":"Error \"failed to get user agent from context: %w\" thrown in googleapis/mcp-toolbox.","triggerScenarios":"Thrown at internal/embeddingmodels/gemini/gemini.go:106 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8cc6e09de2ad7b8bffc77751799585a1401a48eb","analyzedAt":"2026-09-05T01:10:36.887Z","contentChangedAt":"2026-09-05T01:10:36.887Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}