{"record":{"id":"ab5f37984fdc2a6f","repo":"BerriAI/litellm","slug":"only-proxy-admins-can-view-prompt-versions","errorCode":null,"errorMessage":"Only proxy admins can view prompt versions","messagePattern":"Only proxy admins can view prompt versions","errorType":"http","errorClass":"HTTPException","httpStatus":403,"severity":"error","filePath":"litellm/proxy/prompts/prompt_endpoints.py","lineNumber":485,"sourceCode":"                \"updated_at\": \"2023-11-09T12:34:56.789Z\"\n            },\n            {\n                \"prompt_id\": \"jack_success.v2\",\n                \"litellm_params\": {...},\n                \"prompt_info\": {\"prompt_type\": \"db\"},\n                \"created_at\": \"2023-11-09T13:45:12.345Z\",\n                \"updated_at\": \"2023-11-09T13:45:12.345Z\"\n            }\n        ]\n    }\n    ```\n    \"\"\"\n    from litellm.proxy.prompts.prompt_registry import IN_MEMORY_PROMPT_REGISTRY\n    from litellm.proxy.proxy_server import prisma_client\n\n    # Only allow proxy admins to view version history\n    if not user_api_key_has_admin_view(user_api_key_dict):\n        raise HTTPException(status_code=403, detail=\"Only proxy admins can view prompt versions\")\n\n    base_prompt_id: Final = get_base_prompt_id(prompt_id=prompt_id)\n\n    # Query DB for versions\n    versioned_prompts: Final = []\n    if prisma_client is not None:\n        where_clause: Final[dict[str, str]] = {\"prompt_id\": base_prompt_id}\n        if environment:\n            where_clause[\"environment\"] = environment\n        db_prompts: Final = await _prompt_table(prisma_client).find_many(\n            where=where_clause,\n            order={\"version\": \"desc\"},\n        )\n        for db_prompt in db_prompts:\n            spec = create_versioned_prompt_spec(db_prompt=db_prompt)\n            versioned_prompts.append(\n                PromptSpec(\n                    prompt_id=base_prompt_id,","sourceCodeStart":467,"sourceCodeEnd":503,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/prompts/prompt_endpoints.py#L467-L503","documentation":"Authorization gate on the prompt version-history endpoint: user_api_key_dict does not carry a proxy-admin role, so the caller is refused before any database or registry access. Version history is restricted to proxy administrators only.","triggerScenarios":"Thrown at litellm/proxy/prompts/prompt_endpoints.py:485 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a proxy admin key to view prompt versions, or ask an admin for the version history."],"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-14T05:17:10.506Z"}