{"record":{"id":"3ed87c234785ee8a","repo":"BerriAI/litellm","slug":"access-denied-to-prompt-version-prompt-version-i","errorCode":null,"errorMessage":"Access denied to prompt version '{prompt_version_id}'. Check your Arize Phoenix permissions.","messagePattern":"Access denied to prompt version '(.+?)'\\. Check your Arize Phoenix permissions\\.","errorType":"exception","errorClass":"Exception","httpStatus":403,"severity":"error","filePath":"litellm/integrations/arize/arize_phoenix_client.py","lineNumber":84,"sourceCode":"        safe_id: Final = _sanitize_id(prompt_version_id)\n        url: Final = f\"{self.api_base}/v1/prompt_versions/{safe_id}\"\n\n        try:\n            # Use the underlying httpx client directly to avoid query param extraction\n            response = self.http_handler.get(url, headers=self.headers)\n            response.raise_for_status()\n\n            data: Final = response.json()\n            return data.get(\"data\")\n\n        except Exception as e:\n            # Check if it's an HTTP error\n            response = getattr(e, \"response\", None)\n            if response is not None and hasattr(response, \"status_code\"):\n                if response.status_code == 404:\n                    return None\n                elif response.status_code == 403:\n                    raise Exception(\n                        f\"Access denied to prompt version '{prompt_version_id}'. Check your Arize Phoenix permissions.\"\n                    )\n                elif response.status_code == 401:\n                    raise Exception(\"Authentication failed. Check your Arize Phoenix API key and permissions.\")\n                else:\n                    raise Exception(f\"Failed to fetch prompt version '{prompt_version_id}': {e}\")\n            else:\n                raise Exception(f\"Error fetching prompt version '{prompt_version_id}': {e}\")\n\n    def test_connection(self) -> bool:\n        \"\"\"\n        Test the connection to the Arize Phoenix API.\n\n        Returns:\n            True if connection is successful, False otherwise\n        \"\"\"\n        try:\n            # Try to access the prompt_versions endpoint to test connection","sourceCodeStart":66,"sourceCodeEnd":102,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/integrations/arize/arize_phoenix_client.py#L66-L102","documentation":"Error \"Access denied to prompt version '{prompt_version_id}'. Check your Arize Phoenix permissions.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/integrations/arize/arize_phoenix_client.py:84 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Grant the API key permission to read the prompt version, or use an accessible prompt_version_id."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}