From 18a2213cdb375d31f4cb255533c156d2452b7900 Mon Sep 17 00:00:00 2001 From: Alejandro Tapia Date: Tue, 3 Mar 2026 16:21:02 -0800 Subject: [PATCH] Fix: Promise.all loses all results on single page failure --- .../src/components/key_team_helpers/filter_helpers.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ui/litellm-dashboard/src/components/key_team_helpers/filter_helpers.ts b/ui/litellm-dashboard/src/components/key_team_helpers/filter_helpers.ts index 539ac172569..b587e090d33 100644 --- a/ui/litellm-dashboard/src/components/key_team_helpers/filter_helpers.ts +++ b/ui/litellm-dashboard/src/components/key_team_helpers/filter_helpers.ts @@ -37,7 +37,7 @@ const processKeysIntoOptions = ( /** * Fetches filter options (key aliases, org IDs, user IDs) from team keys. * Fetches page 1 first to get totalPages, then batches remaining pages with - * Promise.all. Capped at 10 pages (1000 keys) + * Promise.allSettled (preserves successful pages if some fail). Capped at 10 pages (1000 keys) */ export const fetchTeamFilterOptions = async ( accessToken: string | null, @@ -91,9 +91,11 @@ export const fetchTeamFilterOptions = async ( null, ), ); - const responses = await Promise.all(pagePromises); - for (const response of responses) { - processKeysIntoOptions(response?.keys || [], keyAliases, organizationIds, userMap); + const results = await Promise.allSettled(pagePromises); + for (const result of results) { + if (result.status === "fulfilled") { + processKeysIntoOptions(result.value?.keys || [], keyAliases, organizationIds, userMap); + } } }