BerriAI/litellm · error · HTTPException

Only proxy admins can {operation} vector store indexes. Cont

Error message

Only proxy admins can {operation} vector store indexes. Contact your LiteLLM administrator.

What it means

Role gate in assert_proxy_admin_for_vector_store_index_management: the caller's user_role is not proxy admin. Creating, deleting, updating, or listing managed vector-store indexes is admin-only; the message names which operation ('{operation}') was attempted so the user can ask their administrator.

Source

Thrown at litellm/proxy/vector_store_endpoints/utils.py:49

    return vector_store


def _is_proxy_admin(user_api_key_dict: UserAPIKeyAuth) -> bool:
    return (
        user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN
        or user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN.value
    )


def assert_proxy_admin_for_vector_store_index_management(
    user_api_key_dict: UserAPIKeyAuth,
    *,
    operation: Literal["create", "delete", "update", "list"] = "create",
) -> None:
    """Raise 403 unless the caller is a proxy admin."""
    if _is_proxy_admin(user_api_key_dict):
        return
    raise HTTPException(
        status_code=403,
        detail=(f"Only proxy admins can {operation} vector store indexes. Contact your LiteLLM administrator."),
    )


def _suffix_after_index_name(request_path: str, index_name: str) -> str | None:
    """Return the path suffix after ``/indexes/{index_name}``, or None if absent."""
    match: Final = re.search(rf"/indexes/{re.escape(index_name)}(?=$|[/?])", request_path)
    if match is None:
        return None
    return request_path[match.end() :]


def _is_vector_store_index_lifecycle_request(
    request_method: str,
    request_path: str,
    index_name: str,
) -> bool:

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use a proxy admin key for vector store index operations, or ask your LiteLLM administrator.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/vector_store_endpoints/utils.py:49 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/1c3ef0ed847e644b. Report an issue: GitHub.