BerriAI/litellm · error · HTTPException

Only proxy admins can patch prompts

Error message

Only proxy admins can patch prompts

What it means

Authorization gate on prompt patching: the caller's user_api_key_dict lacks the PROXY_ADMIN role, so partial updates are rejected before any prompt row is read or merged.

Source

Thrown at litellm/proxy/prompts/prompt_endpoints.py:1084

        -H "Authorization: Bearer <your_api_key>" \\
        -H "Content-Type: application/json" \\
        -d '{
            "prompt_info": {
                "prompt_type": "db"
            }
        }'
    ```
    """

    from litellm.proxy.prompts.prompt_registry import IN_MEMORY_PROMPT_REGISTRY
    from litellm.proxy.proxy_server import prisma_client

    # Only allow proxy admins to patch prompts
    if user_api_key_dict.user_role is None or (
        user_api_key_dict.user_role != LitellmUserRoles.PROXY_ADMIN
        and user_api_key_dict.user_role != LitellmUserRoles.PROXY_ADMIN.value
    ):
        raise HTTPException(status_code=403, detail="Only proxy admins can patch prompts")

    if prisma_client is None:
        raise HTTPException(status_code=500, detail=CommonProxyErrors.db_not_connected_error.value)

    try:
        # Resolve the target row: find the latest version in the given environment
        base_prompt_id: Final = get_base_prompt_id(prompt_id=prompt_id)
        env: Final = environment or "development"
        requested_version: Final = get_version_number(prompt_id=prompt_id) if prompt_id != base_prompt_id else None

        # Build query to find the exact row by composite unique key
        find_where: Final[dict[str, str | int]] = {
            "prompt_id": base_prompt_id,
            "environment": env,
        }
        if requested_version is not None:
            find_where["version"] = requested_version

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use a proxy admin key to patch prompts.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/prompts/prompt_endpoints.py:1084 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/4750be1786f689b0. Report an issue: GitHub.