{"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":4169,"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":4151,"sourceCodeEnd":4187,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/litellm_core_utils/litellm_logging.py#L4151-L4187","documentation":"Raised when the 'langtrace' callback initializes: LiteLLM requires LANGTRACE_API_KEY in os.environ before building the OTel HTTP exporter that ships spans to https://langtrace.ai/api/trace. It is a hard precondition — the key becomes the Authorization credential for the trace endpoint — and fires at logger construction (first logged call or proxy startup).","triggerScenarios":"callbacks/success_callback containing 'langtrace' in a process without LANGTRACE_API_KEY; env var present locally but absent in the deployed proxy container, systemd unit, or CI runner.","commonSituations":"Copying a config.yaml with langtrace enabled into a new environment; forgetting to add the secret to docker-compose/k8s; typos in the variable name.","solutions":["Set LANGTRACE_API_KEY in the LiteLLM process environment and restart it.","For the proxy, inject it via compose/k8s secrets or config.yaml environment_vars.","Verify with printenv LANGTRACE_API_KEY in the same execution context as LiteLLM."],"exampleFix":"# before\nimport litellm\nlitellm.success_callback = ['langtrace']  # ValueError: LANGTRACE_API_KEY not found\n\n# after\nimport os\nos.environ['LANGTRACE_API_KEY'] = 'your-langtrace-key'\nimport litellm\nlitellm.success_callback = ['langtrace']","handlingStrategy":"validation","validationCode":"import os\n\nif not os.environ.get('LANGTRACE_API_KEY'):\n    raise RuntimeError('LANGTRACE_API_KEY must be set before enabling the langtrace callback')","typeGuard":null,"tryCatchPattern":"try:\n    litellm.completion(model='gpt-4o', messages=m)\nexcept ValueError as e:\n    if 'LANGTRACE_API_KEY' in str(e):\n        raise RuntimeError('Set LANGTRACE_API_KEY in the LiteLLM process environment and restart')\n    raise","preventionTips":["Preflight-check env vars for every enabled callback at process start.","Document required env vars per environment (dev/staging/prod) next to the callback config."],"tags":["litellm","langtrace","observability","callbacks","env-vars","opentelemetry"],"backgroundTag":"missing-env-var","analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}