{"record":{"id":"4323f1ff078821c3","repo":"BerriAI/litellm","slug":"opentelemetry-otlp-grpc-exporter-is-not-available","errorCode":null,"errorMessage":"OpenTelemetry OTLP gRPC exporter is not available. Install `opentelemetry-exporter-otlp` and `grpcio` (or `litellm[grpc]`).","messagePattern":"OpenTelemetry OTLP gRPC exporter is not available\\. Install `opentelemetry-exporter-otlp` and `grpcio` \\(or `litellm\\[grpc\\]`\\)\\.","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"litellm/integrations/opentelemetry.py","lineNumber":2908,"sourceCode":"                    \"OpenTelemetry OTLP HTTP exporter is not available. Install \"\n                    \"`opentelemetry-exporter-otlp` to enable OTLP HTTP.\"\n                ) from exc\n\n            verbose_logger.debug(\n                \"OpenTelemetry: intiializing http exporter. Value of OTEL_EXPORTER: %s\",\n                otel_exporter,\n            )\n            normalized_endpoint = self._normalize_otel_endpoint(otel_endpoint, \"traces\")\n            return BatchSpanProcessor(\n                OTLPSpanExporterHTTP(endpoint=normalized_endpoint, headers=_split_otel_headers),\n            )\n        elif otel_exporter == \"otlp_grpc\" or otel_exporter == \"grpc\":\n            try:\n                from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (\n                    OTLPSpanExporter as OTLPSpanExporterGRPC,\n                )\n            except ImportError as exc:\n                raise ImportError(\n                    \"OpenTelemetry OTLP gRPC exporter is not available. Install \"\n                    \"`opentelemetry-exporter-otlp` and `grpcio` (or `litellm[grpc]`).\"\n                ) from exc\n\n            verbose_logger.debug(\n                \"OpenTelemetry: intiializing grpc exporter. Value of OTEL_EXPORTER: %s\",\n                otel_exporter,\n            )\n            normalized_endpoint = self._normalize_otel_endpoint(otel_endpoint, \"traces\")\n            return BatchSpanProcessor(\n                OTLPSpanExporterGRPC(endpoint=normalized_endpoint, headers=_split_otel_headers),\n            )\n        else:\n            verbose_logger.debug(\n                \"OpenTelemetry: intiializing console exporter. Value of OTEL_EXPORTER: %s\",\n                otel_exporter,\n            )\n            return BatchSpanProcessor(ConsoleSpanExporter())","sourceCodeStart":2890,"sourceCodeEnd":2926,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/integrations/opentelemetry.py#L2890-L2926","documentation":"Error \"OpenTelemetry OTLP gRPC exporter is not available. Install `opentelemetry-exporter-otlp` and `grpcio` (or `litellm[grpc]`).\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/integrations/opentelemetry.py:2908 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install gRPC exporter deps: pip install opentelemetry-exporter-otlp grpcio (or litellm[grpc])."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}