BerriAI/litellm · error · HTTPException
start_date and end_date must be in YYYY-MM-DD format
Error message
start_date and end_date must be in YYYY-MM-DD format
What it means
Error "start_date and end_date must be in YYYY-MM-DD format" thrown in BerriAI/litellm.
Source
Thrown at litellm/proxy/spend_tracking/spend_management_endpoints.py:1577
status_code=status.HTTP_403_FORBIDDEN,
detail="/spend/report endpoint " + CommonProxyErrors.not_premium_user.value,
)
return prisma_client
def _parse_spend_report_date_range(start_date: str | None, end_date: str | None) -> tuple[datetime, datetime]:
if start_date is None or end_date is None:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="Please provide start_date and end_date",
)
try:
parsed = (
datetime.strptime(start_date, "%Y-%m-%d").replace(tzinfo=timezone.utc),
datetime.strptime(end_date, "%Y-%m-%d").replace(tzinfo=timezone.utc),
)
except ValueError:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="start_date and end_date must be in YYYY-MM-DD format",
)
start_date_obj, end_date_obj = parsed
if end_date_obj < start_date_obj:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="start_date must be on or before end_date",
)
if end_date_obj - start_date_obj > timedelta(days=_SPEND_REPORT_MAX_RANGE_DAYS):
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=f"Date range too large; maximum is {_SPEND_REPORT_MAX_RANGE_DAYS} days",
)
return parsed
def _resolve_spend_report_scope(View on GitHub (pinned to 77b7c6c40c)
Solutions
- Format start_date and end_date as YYYY-MM-DD.
When it happens
Trigger: Thrown at litellm/proxy/spend_tracking/spend_management_endpoints.py:1577 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18).
Data as JSON: /api/errors/4c9d43dace230745.
Report an issue: GitHub.