{"record":{"id":"46fdcfb588002ff6","repo":"tinyhumansai/openhuman","slug":"analytics-ga-initialization-failed","errorCode":null,"errorMessage":"[analytics] GA initialization failed:","messagePattern":"\\[analytics\\] GA initialization failed:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/services/analytics.ts","lineNumber":332,"sourceCode":"    window.dataLayer = window.dataLayer || [];\n    window.gtag = function gtag(...args: [GtagCommand, ...unknown[]]) {\n      window.dataLayer.push(args);\n    };\n    window.gtag('js', new Date());\n    window.gtag('config', GA_MEASUREMENT_ID, {\n      send_page_view: false,\n      allow_ad_personalization_signals: false,\n    });\n\n    const script = document.createElement('script');\n    script.async = true;\n    script.src = `https://www.googletagmanager.com/gtag/js?id=${GA_MEASUREMENT_ID}`;\n    document.head.appendChild(script);\n\n    gaInitialized = true;\n    console.debug('[analytics] GA initialized (gtag.js)', { measurementId: GA_MEASUREMENT_ID });\n  } catch (err) {\n    console.warn('[analytics] GA initialization failed:', err);\n  }\n}\n\nfunction initOpenPanel(): void {\n  if (opInitialized || !OPENPANEL_CLIENT_ID || !OPENPANEL_API_URL) return;\n  opInitialized = true;\n  console.debug('[analytics] OpenPanel initialized (direct ingestion)', {\n    clientId: OPENPANEL_CLIENT_ID,\n    apiUrl: OPENPANEL_API_URL,\n  });\n}\n\nfunction initializeAnalyticsProviders(): void {\n  initGoogleAnalytics();\n  initOpenPanel();\n}\n\n/**","sourceCodeStart":314,"sourceCodeEnd":350,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/app/src/services/analytics.ts#L314-L350","documentation":"Caught failure while initializing Google Analytics in the analytics service: setting up the dataLayer/gtag shim and appending the googletagmanager script element threw (blocked network, CSP rejecting the script URL, or gtag API misuse). The catch warns; analytics stays un-initialized for the session and all GA events become no-ops.","triggerScenarios":"Thrown at app/src/services/analytics.ts:332 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify CSP allows https://www.googletagmanager.com in the webview","Treat as soft-fail: no analytics rather than a broken UI","Re-run initialization on consent change once network/CSP allows"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}