{"record":{"id":"9ec7dda21ec31b9f","repo":"BerriAI/litellm","slug":"secret-secret-name-not-found-in-google-secret-ma","errorCode":null,"errorMessage":"secret {secret_name} not found in Google Secret Manager. Error: {response.text}","messagePattern":"secret (.+?) not found in Google Secret Manager\\. Error: (.+?)","errorType":"http","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/secret_managers/google_secret_manager.py","lineNumber":80,"sourceCode":"        \"\"\"\n        if self.always_read_secret_manager is not True:\n            cached_secret: Final = self.cache.get_cache(secret_name)\n            if cached_secret is not None:\n                return cached_secret\n            if secret_name in self.cache.cache_dict:\n                return cached_secret\n\n        _secret_name: Final = f\"projects/{self.PROJECT_ID}/secrets/{secret_name}/versions/latest\"\n        headers: Final = self.sync_construct_request_headers()\n        url: Final = f\"https://secretmanager.googleapis.com/v1/{_secret_name}:access\"\n\n        # Send the GET request to retrieve the secret\n        response: Final = self.sync_httpx_client.get(url=url, headers=headers)\n\n        if response.status_code != 200:\n            verbose_logger.error(\"Google Secret Manager retrieval error: %s\", str(response.text))\n            self.cache.set_cache(secret_name, None)  # Cache that the secret was not found\n            raise ValueError(f\"secret {secret_name} not found in Google Secret Manager. Error: {response.text}\")\n\n        verbose_logger.debug(\n            \"Google Secret Manager retrieval response status code: %s\",\n            response.status_code,\n        )\n\n        # Parse the JSON response and return the secret value\n        secret_data: Final = response.json()\n        _base64_encoded_value: Final = secret_data.get(\"payload\", {}).get(\"data\")\n\n        # decode the base64 encoded value\n        if _base64_encoded_value is not None:\n            _decoded_value: Final = base64.b64decode(_base64_encoded_value).decode(\"utf-8\")\n            self.cache.set_cache(secret_name, _decoded_value)  # Cache the retrieved secret\n            return _decoded_value\n\n        self.cache.set_cache(secret_name, None)  # Cache that the secret was not found\n        raise ValueError(f\"secret {secret_name} not found in Google Secret Manager\")","sourceCodeStart":62,"sourceCodeEnd":98,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/secret_managers/google_secret_manager.py#L62-L98","documentation":"Raised when the Google Secret Manager REST access call for a secret returns a non-success status — typically 404/403 for a missing secret or missing IAM permission. The API error body is appended to identify which case occurred.","triggerScenarios":"Thrown at litellm/secret_managers/google_secret_manager.py:80 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Confirm secret {secret_name} exists in the project and the service account has secretmanager.secretAccessor.","Inspect response.text for the exact Google API error (404 vs 403)."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}