diff --git a/skyvern-frontend/src/util/geoSearch.ts b/skyvern-frontend/src/util/geoSearch.ts index 5c0e3f1f..f54b9e68 100644 --- a/skyvern-frontend/src/util/geoSearch.ts +++ b/skyvern-frontend/src/util/geoSearch.ts @@ -20,13 +20,19 @@ export type GroupedSearchResults = { cities: SearchResultItem[]; }; -let cscModule: typeof import("country-state-city") | null = null; +// Store the promise so concurrent calls share one import +let cscModulePromise: Promise | null = + null; -async function loadCsc() { - if (!cscModule) { - cscModule = await import("country-state-city"); +function loadCsc() { + if (!cscModulePromise) { + cscModulePromise = import("country-state-city").catch((error) => { + // Reset on failure so next user action can retry + cscModulePromise = null; + throw error; + }); } - return cscModule; + return cscModulePromise; } export async function searchGeoData(