{"record":{"id":"7bd747a222699bf4","repo":"BerriAI/litellm","slug":"langtrace-api-key-not-found-in-environment-variabl","errorCode":null,"errorMessage":"LANGTRACE_API_KEY not found in environment variables","messagePattern":"LANGTRACE_API_KEY not found in environment variables","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/litellm_core_utils/litellm_logging.py","lineNumber":4163,"sourceCode":"                _PROXY_DynamicRateLimitHandlerV3,\n            )\n\n            for callback in _in_memory_loggers:\n                if isinstance(callback, _PROXY_DynamicRateLimitHandlerV3):\n                    return callback\n\n            if internal_usage_cache is None:\n                raise Exception(f\"Internal Error: Cache cannot be empty - internal_usage_cache={internal_usage_cache}\")\n\n            dynamic_rate_limiter_obj_v3 = _PROXY_DynamicRateLimitHandlerV3(internal_usage_cache=internal_usage_cache)\n\n            if llm_router is not None and isinstance(llm_router, litellm.Router):\n                dynamic_rate_limiter_obj_v3.update_variables(llm_router=llm_router)\n            _in_memory_loggers.append(dynamic_rate_limiter_obj_v3)\n            return dynamic_rate_limiter_obj_v3\n        elif logging_integration == \"langtrace\":\n            if \"LANGTRACE_API_KEY\" not in os.environ:\n                raise ValueError(\"LANGTRACE_API_KEY not found in environment variables\")\n            _v2 = _maybe_construct_otel_v2(\"langtrace\", _in_memory_loggers)\n            if _v2 is not None:\n                return _v2\n\n            from litellm.integrations.opentelemetry import (\n                OpenTelemetry,\n                OpenTelemetryConfig,\n            )\n\n            otel_config = OpenTelemetryConfig(\n                exporter=\"otlp_http\",\n                endpoint=\"https://langtrace.ai/api/trace\",\n            )\n            os.environ[\"OTEL_EXPORTER_OTLP_TRACES_HEADERS\"] = f\"api_key={os.getenv('LANGTRACE_API_KEY')}\"\n            for callback in _in_memory_loggers:\n                if isinstance(callback, OpenTelemetry) and callback.callback_name == \"langtrace\":\n                    return callback\n            _otel_logger = OpenTelemetry(config=otel_config, callback_name=\"langtrace\")","sourceCodeStart":4145,"sourceCodeEnd":4181,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/litellm_core_utils/litellm_logging.py#L4145-L4181","documentation":"When constructing the 'langtrace' integration for the first time, LiteLLM requires LANGTRACE_API_KEY in the environment (used as the auth header for https://langtrace.ai/api/trace). Without it, OTel exporter construction is refused with this ValueError before any traces are sent.","triggerScenarios":"callbacks: ['langtrace'] (config.yaml or LITELLM_CALLBACKS) enabled and the first request is logged in a process whose environment lacks LANGTRACE_API_KEY.","commonSituations":"Env var missing in containerized deployments; key present in CI but not prod; typo in the variable name; testing locally with callbacks enabled in a shared config.","solutions":["Set LANGTRACE_API_KEY in the LiteLLM proxy process environment and restart","Verify with printenv LANGTRACE_API_KEY inside the exact container/pod running the proxy","Inject via secrets manager (k8s secret, docker secrets) rather than shell exports for durable deploys","Remove 'langtrace' from callbacks if tracing is not wanted in that environment"],"exampleFix":"# before\nlitellm_settings:\n  callbacks: [\"langtrace\"]\n\n# after\nexport LANGTRACE_API_KEY=<your-key>  # in the proxy's env (docker -e, k8s env, systemd)\nlitellm_settings:\n  callbacks: [\"langtrace\"]","handlingStrategy":"validation","validationCode":"import os\nassert os.getenv('LANGTRACE_API_KEY'), 'LANGTRACE_API_KEY required for langtrace callback'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Provision LANGTRACE_API_KEY via secret manager in all environments using langtrace","Preflight-check callback env vars at proxy boot","Keep a per-environment mapping of callbacks to required env vars"],"tags":["litellm","langtrace","observability","callbacks","environment-variables"],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}