From 2f89b36693235f769b06505c8d2118a018076fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Bosi?= <71827178+bosiraphael@users.noreply.github.com> Date: Thu, 5 Jun 2025 19:38:10 +0200 Subject: [PATCH] Fix ClientConfigProviderEffect infite loop (#12472) Fixes an infinite loop introduced by #12371 An infinite loop was triggered when there was an error when fetching the client config. Cause of the bug: `isLoadedOnce` wasn't set to true when catching an error in `useClientConfig`. This effect then created an infinite loop inside `ClientConfigProviderEffect` because `fetchClientConfig` updated `clientConfigApiStatus.isLoading` but not `isLoadedOnce`. ```typescript useEffect(() => { if ( !clientConfigApiStatus.isLoadedOnce && !clientConfigApiStatus.isLoading ) { fetchClientConfig(); } }, [ clientConfigApiStatus.isLoadedOnce, clientConfigApiStatus.isLoading, fetchClientConfig, ]); ``` --- .../src/modules/client-config/hooks/useClientConfig.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/twenty-front/src/modules/client-config/hooks/useClientConfig.ts b/packages/twenty-front/src/modules/client-config/hooks/useClientConfig.ts index 736170943..8f1fff94d 100644 --- a/packages/twenty-front/src/modules/client-config/hooks/useClientConfig.ts +++ b/packages/twenty-front/src/modules/client-config/hooks/useClientConfig.ts @@ -40,6 +40,7 @@ export const useClientConfig = (): UseClientConfigResult => { setClientConfigApiStatus((prev) => ({ ...prev, isLoading: false, + isLoadedOnce: true, isErrored: true, error, }));