diff --git a/ui/litellm-dashboard/src/components/per_user_usage.test.tsx b/ui/litellm-dashboard/src/components/per_user_usage.test.tsx index d5c2216dfd5..30b3059b7d2 100644 --- a/ui/litellm-dashboard/src/components/per_user_usage.test.tsx +++ b/ui/litellm-dashboard/src/components/per_user_usage.test.tsx @@ -178,6 +178,30 @@ describe("PerUserUsage", () => { expect(screen.getByTestId("pagination-next")).toBeDisabled(); }); + it("goes back to the first page when the data disappears under the current page", async () => { + const user = userEvent.setup(); + render(); + await screen.findByText("user-1"); + await user.click(screen.getByTestId("pagination-next")); + await screen.findByText("user-51"); + + serveUsers(0); + await user.click(screen.getByTestId("pagination-next")); + + await waitFor(() => { + expect(lastCall()).toEqual(["test-token", 1, 50, undefined]); + }); + expect(mockPerUserAnalyticsCall.mock.calls.slice(-2)).toEqual([ + ["test-token", 3, 50, undefined], + ["test-token", 1, 50, undefined], + ]); + expect(screen.getByText("No per-user usage data")).toBeInTheDocument(); + expect(screen.getByTestId("pagination-range")).toHaveTextContent("No results"); + expect(screen.getByText("Page 1 of 1")).toBeInTheDocument(); + expect(screen.getByTestId("pagination-first")).toBeDisabled(); + expect(screen.getByTestId("pagination-prev")).toBeDisabled(); + }); + it("refetches with the selected page size and goes back to the first page", async () => { const user = userEvent.setup(); render(); diff --git a/ui/litellm-dashboard/src/components/per_user_usage.tsx b/ui/litellm-dashboard/src/components/per_user_usage.tsx index 57b1a926ec0..f600cd6c45d 100644 --- a/ui/litellm-dashboard/src/components/per_user_usage.tsx +++ b/ui/litellm-dashboard/src/components/per_user_usage.tsx @@ -62,9 +62,6 @@ const PerUserUsage: React.FC = ({ accessToken, selectedTags, .then((response) => { if (stale) return; setPerUserData(response); - if (response.total_pages > 0 && pagination.pageIndex >= response.total_pages) { - setPagination({ ...pagination, pageIndex: response.total_pages - 1 }); - } }) .catch((error) => console.error("Failed to fetch per-user data:", error));