{"record":{"id":"d7cdb40bf5dc5cd4","repo":"BerriAI/litellm","slug":"azure-oidc-provider-returned-none-token","errorCode":null,"errorMessage":"Azure OIDC provider returned None token","messagePattern":"Azure OIDC provider returned None token","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/secret_managers/main.py","lineNumber":283,"sourceCode":"            )\n            if response.status_code == 200:\n                oidc_token = response.json().get(\"value\", None)\n                oidc_cache.set_cache(key=secret_name, value=oidc_token, ttl=300 - 5)\n                return oidc_token\n            else:\n                raise ValueError(\"Github OIDC provider failed\")\n        elif oidc_provider == \"azure\":\n            # https://azure.github.io/azure-workload-identity/docs/quick-start.html\n            azure_federated_token_file: Final = os.getenv(\"AZURE_FEDERATED_TOKEN_FILE\")\n            if azure_federated_token_file is None:\n                verbose_logger.warning(\n                    \"AZURE_FEDERATED_TOKEN_FILE not found in environment will use Azure AD token provider\"\n                )\n                azure_token_provider: Final = get_azure_ad_token_provider(azure_scope=oidc_aud)\n                try:\n                    oidc_token = azure_token_provider()\n                    if oidc_token is None:\n                        raise ValueError(\"Azure OIDC provider returned None token\")\n                    return oidc_token\n                except Exception as e:\n                    error_msg: Final = f\"Azure OIDC provider failed: {e}\"\n                    verbose_logger.error(error_msg)\n                    raise ValueError(error_msg)\n            with open(azure_federated_token_file, \"r\") as f:\n                oidc_token = f.read()\n                return oidc_token\n        elif oidc_provider == \"file\":\n            # Load token from a file within an allowed credential directory.\n            safe_path: Final = _resolve_oidc_file_path(oidc_aud)\n            with open(safe_path, \"r\") as f:\n                oidc_token = f.read()\n                return oidc_token\n        elif oidc_provider == \"env\":\n            # Load token directly from an environment variable\n            oidc_token = os.getenv(oidc_aud)\n            if oidc_token is None:","sourceCodeStart":265,"sourceCodeEnd":301,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/secret_managers/main.py#L265-L301","documentation":"Azure workload-identity OIDC failure: get_azure_ad_token_provider returned a None token, so the caller has no federated credential to exchange. Indicates the Azure AD workload identity setup (FederatedTokenFile or token provider) is misconfigured.","triggerScenarios":"Thrown at litellm/secret_managers/main.py:283 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the Azure managed identity / federated credential is configured so a token is returned.","Check Azure identity configuration and retry; a None token means no identity was available."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}