diff --git a/packages/frontend/editor-ui/public/static/posthog.init.js b/packages/frontend/editor-ui/public/static/posthog.init.js index 8e7eb1f35c7..d1da40abee1 100644 --- a/packages/frontend/editor-ui/public/static/posthog.init.js +++ b/packages/frontend/editor-ui/public/static/posthog.init.js @@ -27,7 +27,7 @@ return u.toString(1) + '.people (stub)'; }, o = - 'capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled getFeatureFlag onFeatureFlags reloadFeatureFlags'.split( + 'capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled getFeatureFlag onFeatureFlags reloadFeatureFlags group'.split( ' ', ), n = 0; diff --git a/packages/frontend/editor-ui/src/app/init.test.ts b/packages/frontend/editor-ui/src/app/init.test.ts index 04713bfa1cd..393d33250aa 100644 --- a/packages/frontend/editor-ui/src/app/init.test.ts +++ b/packages/frontend/editor-ui/src/app/init.test.ts @@ -8,6 +8,7 @@ import { useSettingsStore } from '@/app/stores/settings.store'; import { useSourceControlStore } from '@/features/integrations/sourceControl.ee/sourceControl.store'; import { useSSOStore } from '@/features/settings/sso/sso.store'; import { useUsersStore } from '@/features/settings/users/users.store'; +import { usePostHog } from '@/app/stores/posthog.store'; import { useVersionsStore } from '@/app/stores/versions.store'; import { useBannersStore } from '@/features/shared/banners/banners.store'; import type { Cloud, CurrentUserResponse } from '@n8n/rest-api-client'; @@ -190,6 +191,21 @@ describe('Init', () => { }, }); }); + + it('should still call getModuleSettings if postHogStore.init throws', async () => { + const postHogStore = mockedStore(usePostHog); + vi.spyOn(postHogStore, 'init').mockImplementation(() => { + throw new Error('PostHog init failed'); + }); + + usersStore.registerLoginHook.mockImplementation(async (hook) => { + await hook(mock({ id: 'userId', role: 'global:member' })); + }); + + await initializeCore(); + + expect(settingsStore.getModuleSettings).toHaveBeenCalled(); + }); }); describe('initializeAuthenticatedFeatures()', () => { diff --git a/packages/frontend/editor-ui/src/app/init.ts b/packages/frontend/editor-ui/src/app/init.ts index b8c6c802e65..6bb5f3c8dc4 100644 --- a/packages/frontend/editor-ui/src/app/init.ts +++ b/packages/frontend/editor-ui/src/app/init.ts @@ -265,7 +265,12 @@ function registerAuthenticationHooks() { userId: user.id, userRole: user.role, }); - postHogStore.init(user.featureFlags); + try { + postHogStore.init(user.featureFlags); + } catch (e) { + // don't let posthog failing prevent further function calls + console.error(e); + } npsSurveyStore.setupNpsSurveyOnLogin(user.id, user.settings); await settingsStore.getModuleSettings(); void bannersStore.loadDynamicBanners();