{"record":{"id":"af321628b26ce833","repo":"BerriAI/litellm","slug":"team-metadata-validation-is-currently-unavailable","errorCode":null,"errorMessage":"Team metadata validation is currently unavailable, so the team was not saved. Contact your proxy admin.","messagePattern":"Team metadata validation is currently unavailable, so the team was not saved\\. Contact your proxy admin\\.","errorType":"http","errorClass":"HTTPException","httpStatus":503,"severity":"error","filePath":"litellm/proxy/management_helpers/team_metadata_validation.py","lineNumber":132,"sourceCode":"            detail={  # mutable-ok: HTTPException.detail has no immutable form\n                \"error\": f\"custom_team_metadata_validate is an Enterprise feature. {CommonProxyErrors.not_premium_user.value}\"\n            },\n        )\n    if not (\n        inspect.iscoroutinefunction(validator) or inspect.iscoroutinefunction(getattr(validator, \"__call__\", None))\n    ):\n        raise HTTPException(\n            status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,\n            detail={  # mutable-ok: HTTPException.detail has no immutable form\n                \"error\": \"custom_team_metadata_validate must be an async function\"\n            },\n        )\n\n    try:\n        raw_result: Final = await asyncio.wait_for(validator(payload), timeout=timeout_seconds)\n        result: Final = TeamMetadataValidationResult.model_validate(raw_result)\n    except Exception:  # noqa: BLE001  # fail closed: any validator failure must block the team write\n        raise HTTPException(\n            status_code=status.HTTP_503_SERVICE_UNAVAILABLE,\n            detail={\"error\": unavailable_message},  # mutable-ok: HTTPException.detail has no immutable form\n        )\n\n    if not result.valid:\n        raise HTTPException(\n            status_code=status.HTTP_400_BAD_REQUEST,\n            detail={  # mutable-ok: HTTPException.detail has no immutable form\n                \"error\": result.error_message or DEFAULT_TEAM_METADATA_VALIDATION_REJECTED_MESSAGE\n            },\n        )\n\n\ndef _read_timeout_seconds(general_settings: Mapping[str, object]) -> float:\n    raw_timeout: Final = general_settings.get(\"team_metadata_validation_timeout\")\n    if isinstance(raw_timeout, (int, float)) and not isinstance(raw_timeout, bool) and raw_timeout > 0:\n        return float(raw_timeout)\n    return DEFAULT_TEAM_METADATA_VALIDATION_TIMEOUT_SECONDS","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/management_helpers/team_metadata_validation.py#L114-L150","documentation":"HTTPException raised when the enterprise custom team-metadata validator cannot be run — it timed out (asyncio.wait_for) or raised — so the team write is blocked (fail closed). The team was not saved; the admin must fix validator availability/timeout before retrying.","triggerScenarios":"Thrown at litellm/proxy/management_helpers/team_metadata_validation.py:132 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Contact the proxy admin; check proxy logs for the team metadata validation failure and retry after it is fixed."],"exampleFix":null,"handlingStrategy":"try-catch","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-14T00:17:10.932Z"}