{"record":{"id":"34ff924a44aa5bbb","repo":"BerriAI/litellm","slug":"hashicorp-secret-manager-is-only-available-for-pre","errorCode":null,"errorMessage":"Hashicorp secret manager is only available for premium users. {CommonProxyErrors.not_premium_user.value}","messagePattern":"Hashicorp secret manager is only available for premium users\\. (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/secret_managers/hashicorp_secret_manager.py","lineNumber":48,"sourceCode":"        # If your KV engine is mounted somewhere other than \"secret\", set HCP_VAULT_MOUNT_NAME\n        self.vault_mount_name = os.getenv(\"HCP_VAULT_MOUNT_NAME\", \"secret\")\n        # Optional path prefix for secrets (e.g., \"myapp\" -> secret/data/myapp/{secret_name})\n        self.vault_path_prefix = os.getenv(\"HCP_VAULT_PATH_PREFIX\", None)\n\n        # Optional config for TLS cert auth\n        self.tls_cert_path = os.getenv(\"HCP_VAULT_CLIENT_CERT\", \"\")\n        self.tls_key_path = os.getenv(\"HCP_VAULT_CLIENT_KEY\", \"\")\n        self.vault_cert_role = os.getenv(\"HCP_VAULT_CERT_ROLE\", None)\n\n        # Optional config for AppRole auth\n        self.approle_role_id = os.getenv(\"HCP_VAULT_APPROLE_ROLE_ID\", \"\")\n        self.approle_secret_id = os.getenv(\"HCP_VAULT_APPROLE_SECRET_ID\", \"\")\n        self.approle_mount_path = os.getenv(\"HCP_VAULT_APPROLE_MOUNT_PATH\", \"approle\")\n\n        self._verify_required_credentials_exist()\n\n        if premium_user is not True:\n            raise ValueError(\n                f\"Hashicorp secret manager is only available for premium users. {CommonProxyErrors.not_premium_user.value}\"\n            )\n\n        litellm.secret_manager_client = self\n        litellm._key_management_system = KeyManagementSystem.HASHICORP_VAULT\n        _refresh_interval = os.environ.get(\"HCP_VAULT_REFRESH_INTERVAL\", SECRET_MANAGER_REFRESH_INTERVAL)\n        _refresh_interval = int(_refresh_interval) if _refresh_interval else SECRET_MANAGER_REFRESH_INTERVAL\n        self.cache = InMemoryCache(default_ttl=_refresh_interval)  # store in memory for 1 day\n\n    def _verify_required_credentials_exist(self) -> None:\n        \"\"\"\n        Validate that at least one authentication method is configured.\n\n        Raises:\n            ValueError: If no valid authentication credentials are provided\n        \"\"\"\n        has_token: Final = bool(self.vault_token)\n        has_approle: Final = bool(self.approle_role_id and self.approle_secret_id)","sourceCodeStart":30,"sourceCodeEnd":66,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/secret_managers/hashicorp_secret_manager.py#L30-L66","documentation":"Licensing gate in the HashiCorp Vault secret manager constructor: after reading HCP_VAULT_* settings, it determines the deployment is not a premium/enterprise user and rejects construction, since Hashicorp secret manager support is premium-only. The CommonProxyErrors text appends the upgrade hint.","triggerScenarios":"Thrown at litellm/secret_managers/hashicorp_secret_manager.py:48 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set a valid LITELLM_LICENSE (Enterprise) to enable the Hashicorp Vault secret manager.","Otherwise use a non-premium secret manager backend."],"exampleFix":null,"handlingStrategy":"validation","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"}