From dabd397fb3dee630bd66867121bfa65a5ce89ff2 Mon Sep 17 00:00:00 2001 From: "n8n-assistant[bot]" <100856346+n8n-assistant[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 07:30:29 +0000 Subject: [PATCH] fix(core): Insights page shows license paywall for licensed users (backport to release-candidate/2.23.x) (#31452) Co-authored-by: Konstantin Tieber <46342664+konstantintieber@users.noreply.github.com> --- .../editor-ui/public/static/posthog.init.js | 2 +- packages/frontend/editor-ui/src/app/init.test.ts | 16 ++++++++++++++++ packages/frontend/editor-ui/src/app/init.ts | 7 ++++++- 3 files changed, 23 insertions(+), 2 deletions(-) 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();