{"record":{"id":"aec834860b1b63cb","repo":"BerriAI/litellm","slug":"provider-provider-not-supported-for-focus-expo","errorCode":null,"errorMessage":"Provider '{provider}' not supported for Focus export","messagePattern":"Provider '(.+?)' not supported for Focus export","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"litellm/integrations/focus/destinations/factory.py","lineNumber":36,"sourceCode":"    @staticmethod\n    def create(\n        *,\n        provider: str,\n        prefix: str,\n        config: dict[str, Any] | None = None,\n    ) -> FocusDestination:\n        \"\"\"Return a destination implementation for the requested provider.\"\"\"\n        provider_lower: Final = provider.lower()\n        normalized_config = FocusDestinationFactory._resolve_config(provider=provider_lower, overrides=config or {})\n        if provider_lower == \"s3\":\n            return FocusS3Destination(prefix=prefix, config=normalized_config)\n        if provider_lower == \"vantage\":\n            return FocusVantageDestination(prefix=prefix, config=normalized_config)\n        if provider_lower == \"gcs\":\n            return FocusGCSDestination(prefix=prefix, config=normalized_config)\n        if provider_lower == \"mavvrik\":\n            return FocusMavvrikDestination(prefix=prefix, config=normalized_config)\n        raise NotImplementedError(f\"Provider '{provider}' not supported for Focus export\")\n\n    @staticmethod\n    def _resolve_config(\n        *,\n        provider: str,\n        overrides: dict[str, Any],\n    ) -> dict[str, Any]:\n        if provider == \"s3\":\n            resolved = {\n                \"bucket_name\": overrides.get(\"bucket_name\") or os.getenv(\"FOCUS_S3_BUCKET_NAME\"),\n                \"region_name\": overrides.get(\"region_name\") or os.getenv(\"FOCUS_S3_REGION_NAME\"),\n                \"endpoint_url\": overrides.get(\"endpoint_url\") or os.getenv(\"FOCUS_S3_ENDPOINT_URL\"),\n                \"aws_access_key_id\": overrides.get(\"aws_access_key_id\") or os.getenv(\"FOCUS_S3_ACCESS_KEY\"),\n                \"aws_secret_access_key\": overrides.get(\"aws_secret_access_key\") or os.getenv(\"FOCUS_S3_SECRET_KEY\"),\n                \"aws_session_token\": overrides.get(\"aws_session_token\") or os.getenv(\"FOCUS_S3_SESSION_TOKEN\"),\n            }\n            if not resolved.get(\"bucket_name\"):\n                raise ValueError(\"FOCUS_S3_BUCKET_NAME must be provided for S3 exports\")","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/integrations/focus/destinations/factory.py#L18-L54","documentation":"Error \"Provider '{provider}' not supported for Focus export\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/integrations/focus/destinations/factory.py:36 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a supported Focus export provider (s3, gcs, vantage, mavvrik)."],"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-15T22:17:37.221Z"}