BerriAI/litellm · error · HTTPException

🚨🚨🚨 DISABLING LLM API ENDPOINTS is an Enterprise…

Error message

🚨🚨🚨 DISABLING LLM API ENDPOINTS is an Enterprise feature
🚨 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

Raised as HTTPException 500 by EnterpriseRouteChecks.is_llm_api_route_disabled when the DISABLE_LLM_API_ENDPOINTS env var is set but the proxy is not a premium (Enterprise licensed) user. The env var is an enterprise-only hardening feature that blocks all /chat/completions, /embeddings etc.; the license check fires as soon as the variable is merely present in the environment, regardless of its value.

Solutions

  1. Remove DISABLE_LLM_API_ENDPOINTS from the proxy environment entirely (do not set it to 'false' - presence alone triggers the check) and restart
  2. If you need the feature, set a valid LITELLM_LICENSE (get a trial key at https://www.litellm.ai/enterprise#trial)
  3. Audit deployment manifests, Dockerfiles, and CI env for stray definitions: env | grep DISABLE_LLM_API_ENDPOINTS
  4. If the goal was blocking management endpoints instead, use community-supported auth controls rather than this env var

Example fix

# before (deployment.yaml)
env:
  - name: DISABLE_LLM_API_ENDPOINTS
    value: "true"   # no license -> 500
# after
env: []            # variable fully removed; or add LITELLM_LICENSE
Defensive patterns

Strategy: validation

Validate before calling

# Deploy-time guard: variable presence alone trips the license check
import os
if "DISABLE_LLM_API_ENDPOINTS" in os.environ and not licensed():
    del os.environ["DISABLE_LLM_API_ENDPOINTS"]
    # or abort deploy: raise ConfigError(...)

Prevention

When it happens

Trigger: Deploying the proxy with DISABLE_LLM_API_ENDPOINTS in the environment (any value, including 'false' or empty) while running the free tier; a base Docker image or k8s deployment manifest that sets the variable globally; a hardened deployment template (docker-compose.hardened.yml style) applied without a license.

Common situations: Copy-pasting a hardened enterprise config to a community deployment; leaving the env var defined in .env after an enterprise trial expired; CI containers inheriting the variable from a shared base image.

Related errors


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

Appendix: source

Thrown at enterprise/litellm_enterprise/proxy/auth/route_checks.py:19

import os

from fastapi import HTTPException, status


class EnterpriseRouteChecks:
    @staticmethod
    def is_llm_api_route_disabled() -> bool:
        """
        Check if llm api route is disabled
        """
        from litellm.proxy._types import CommonProxyErrors
        from litellm.proxy.proxy_server import premium_user
        from litellm.secret_managers.main import get_secret_bool

        ## Check if DISABLE_LLM_API_ENDPOINTS is set
        if "DISABLE_LLM_API_ENDPOINTS" in os.environ:
            if not premium_user:
                raise HTTPException(
                    status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
                    detail=f"🚨🚨🚨 DISABLING LLM API ENDPOINTS is an Enterprise feature\n🚨 {CommonProxyErrors.not_premium_user.value}",
                )

        return get_secret_bool("DISABLE_LLM_API_ENDPOINTS") is True

    @staticmethod
    def is_management_routes_disabled() -> bool:
        """
        Check if management route is disabled
        """
        from litellm.proxy._types import CommonProxyErrors
        from litellm.proxy.proxy_server import premium_user
        from litellm.secret_managers.main import get_secret_bool

        if "DISABLE_ADMIN_ENDPOINTS" in os.environ:
            if not premium_user:
                raise HTTPException(

View on GitHub (pinned to 77b7c6c40c)