{"record":{"id":"88dd549fa9bb586b","repo":"BerriAI/litellm","slug":"invalid-date-format-expected-yyyy-mm-dd-e","errorCode":null,"errorMessage":"Invalid date format, expected YYYY-MM-DD: {e}","messagePattern":"Invalid date format, expected YYYY-MM-DD: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"litellm/proxy/management_endpoints/tag_management_endpoints.py","lineNumber":563,"sourceCode":"        return requested_tags\n    except Exception as e:\n        raise HTTPException(status_code=500, detail=str(e))\n\n\ndef _validate_tag_list_date_range(start_date: str | None, end_date: str | None) -> None:\n    \"\"\"Require both dates together, and enforce YYYY-MM-DD format with start <= end.\"\"\"\n    if (start_date is None) != (end_date is None):\n        raise HTTPException(\n            status_code=400,\n            detail=\"start_date and end_date must be provided together\",\n        )\n    if start_date is None:\n        return\n    try:\n        start: Final = datetime.strptime(start_date, \"%Y-%m-%d\")\n        end: Final = datetime.strptime(end_date, \"%Y-%m-%d\")\n    except ValueError as e:\n        raise HTTPException(\n            status_code=400,\n            detail=f\"Invalid date format, expected YYYY-MM-DD: {e}\",\n        )\n    if start > end:\n        raise HTTPException(\n            status_code=400,\n            detail=\"start_date must be on or before end_date\",\n        )\n\n\n@router.get(\n    \"/tag/list\",\n    tags=[\"tag management\"],\n    dependencies=[Depends(user_api_key_auth)],\n)\nasync def list_tags(\n    user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),\n    start_date: str | None = Query(","sourceCodeStart":545,"sourceCodeEnd":581,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/management_endpoints/tag_management_endpoints.py#L545-L581","documentation":"Date parsing in the tag-list range validator: datetime.strptime with '%Y-%m-%d' fails on malformed input, and the ValueError is converted into a 400 that names the expected format. At-fault input is a date string not in YYYY-MM-DD form.","triggerScenarios":"Thrown at litellm/proxy/management_endpoints/tag_management_endpoints.py:563 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use YYYY-MM-DD date format."],"exampleFix":null,"handlingStrategy":"validation","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"}