diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 28eccdf85e7..baa6d18fdfa 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -7747,7 +7747,15 @@ class ProxyStartupEvent: is_mavvrik_setup, ) - if await is_mavvrik_setup(): + try: + _mavvrik_ready = await is_mavvrik_setup() + except Exception as _e: + verbose_proxy_logger.warning( + "mavvrik: skipping startup — is_mavvrik_setup() failed: %s", _e + ) + _mavvrik_ready = False + + if _mavvrik_ready: from litellm.constants import ( # noqa: PLC0415 MAVVRIK_EXPORT_INTERVAL_MINUTES, MAVVRIK_EXPORT_USAGE_DATA_JOB_NAME, diff --git a/litellm/proxy/spend_tracking/mavvrik_endpoints.py b/litellm/proxy/spend_tracking/mavvrik_endpoints.py index 71d1b643a8c..47e63e4551d 100644 --- a/litellm/proxy/spend_tracking/mavvrik_endpoints.py +++ b/litellm/proxy/spend_tracking/mavvrik_endpoints.py @@ -85,7 +85,11 @@ async def _mavvrik_errors() -> AsyncIterator[None]: except ValueError as exc: raise HTTPException(status_code=400, detail={"error": str(exc)}) from exc except Exception as exc: - raise HTTPException(status_code=500, detail={"error": str(exc)}) from exc + # Use only the exception type name to avoid leaking internal details + # (e.g. Postgres DSNs, hostnames) into API responses. + raise HTTPException( + status_code=500, detail={"error": type(exc).__name__} + ) from exc # ---------------------------------------------------------------------------