BerriAI/litellm · error · HTTPException

Only premium users can add tags to projects. You must be a…

Error message

Only premium users can add tags to projects. You must be a LiteLLM Enterprise user to use this feature. If you have a license please set `LITELLM_LICENSE` in your env. Get a 7 day trial key here: https://www.litellm.ai/enterprise#trial. 
Pricing: https://www.litellm.ai/#pricing

What it means

Project management is enterprise-only and tags doubly so: /project/new and /project/update first reject non-premium users who send a tags field, then reject all non-premium use of project management itself. premium_user is only True with a valid LITELLM_LICENSE; the 403 detail embeds the not_premium_user help text with trial and pricing links.

Solutions

  1. Set LITELLM_LICENSE to a valid enterprise key in the proxy environment and restart
  2. Get a 7-day trial key at https://www.litellm.ai/enterprise#trial to evaluate
  3. Remove the tags field from project payloads if the license cannot be enabled (note core project management is also enterprise-only)

Example fix

# before
docker run -p 4000:4000 ghcr.io/berriai/litellm --config /app/config.yaml  # no license, tags sent -> 403

# after
docker run -p 4000:4000 -e LITELLM_LICENSE=<your-key> ghcr.io/berriai/litellm --config /app/config.yaml
Defensive patterns

Strategy: validation

Validate before calling

import os

IS_PREMIUM = bool(os.environ.get("LITELLM_LICENSE"))
def project_payload_safe(data: dict) -> dict:
    if not IS_PREMIUM:
        data.pop("tags", None)  # tags are premium-only
    return data

Try / catch

try:
    await post("/project/new", json=data)
except HTTPStatusError as e:
    if e.response.status_code == 403 and "premium" in e.response.text:
        # configuration gap: set LITELLM_LICENSE on the proxy, then retry
        raise RuntimeError("project management requires LITELLM_LICENSE")
    raise

Prevention

When it happens

Trigger: Any /project/* write on a proxy without a valid enterprise license, or specifically any request with "tags" set while premium_user is False (LITELLM_LICENSE unset, invalid, or expired).

Common situations: OSS litellm proxy given an enterprise-style config; license expired or the env var not passed into the container; CI environments provisioned without the license.

Related errors


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

Appendix: source

Thrown at enterprise/litellm_enterprise/proxy/management_endpoints/project_endpoints.py:362

        "description": "Personalized hotel recommendation engine",
        "team_id": "team-123",
        "models": ["claude-3-sonnet"],
        "budget_id": "428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689",
        "metadata": {
            "use_case_id": "SNOW-54321"
        }
    }'
    ```
    """
    from litellm.proxy.proxy_server import (
        litellm_proxy_admin_name,
        premium_user,
        prisma_client,
    )

    try:
        if getattr(data, "tags", None) is not None and not premium_user:
            raise HTTPException(
                status_code=403,
                detail={
                    "error": "Only premium users can add tags to projects. " + CommonProxyErrors.not_premium_user.value
                },
            )

        if not premium_user:
            raise HTTPException(
                status_code=403,
                detail={
                    "error": "Project management is an enterprise feature. " + CommonProxyErrors.not_premium_user.value
                },
            )

        # ADD METADATA FIELDS
        for field in LiteLLM_ManagementEndpoint_MetadataFields_Premium:
            if getattr(data, field, None) is not None:
                _set_object_metadata_field(

View on GitHub (pinned to 77b7c6c40c)