diff --git a/litellm/proxy/spend_tracking/spend_management_endpoints.py b/litellm/proxy/spend_tracking/spend_management_endpoints.py index ca5e0473659..5a9a7cffd96 100644 --- a/litellm/proxy/spend_tracking/spend_management_endpoints.py +++ b/litellm/proxy/spend_tracking/spend_management_endpoints.py @@ -3400,7 +3400,7 @@ async def ui_view_session_spend_logs( session_id, status, mcp_namespaced_tool_name, agent_id FROM "LiteLLM_SpendLogs" WHERE session_id = $1 - ORDER BY "startTime" ASC + ORDER BY "startTime" DESC LIMIT $2 OFFSET $3 """ result = await prisma_client.db.query_raw( diff --git a/tests/test_litellm/proxy/spend_tracking/test_spend_management_endpoints.py b/tests/test_litellm/proxy/spend_tracking/test_spend_management_endpoints.py index aef91ed3c77..73c4aec47e5 100644 --- a/tests/test_litellm/proxy/spend_tracking/test_spend_management_endpoints.py +++ b/tests/test_litellm/proxy/spend_tracking/test_spend_management_endpoints.py @@ -1313,7 +1313,8 @@ async def test_ui_view_session_spend_logs_pagination(client, monkeypatch): # Endpoint uses raw SQL for pagination - verify params assert session_id == "session-123" assert page_size == 1 - assert skip == 1 # page=2, page_size=1 + assert skip == 0 # page=1, page_size=1 + assert 'ORDER BY "startTime" DESC' in sql_query return [mock_spend_logs[1]] class MockPrismaClient: @@ -1326,14 +1327,14 @@ async def test_ui_view_session_spend_logs_pagination(client, monkeypatch): response = client.get( "/spend/logs/session/ui", - params={"session_id": "session-123", "page": 2, "page_size": 1}, + params={"session_id": "session-123", "page": 1, "page_size": 1}, headers={"Authorization": "Bearer sk-test"}, ) assert response.status_code == 200 data = response.json() assert data["total"] == 2 - assert data["page"] == 2 + assert data["page"] == 1 assert data["page_size"] == 1 assert data["total_pages"] == 2 assert len(data["data"]) == 1