{"record":{"id":"fff4530d42eb7177","repo":"tinyhumansai/openhuman","slug":"analytics-openpanel-track-failed","errorCode":null,"errorMessage":"[analytics] OpenPanel track failed:","messagePattern":"\\[analytics\\] OpenPanel track failed:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/services/analytics.ts","lineNumber":489,"sourceCode":"      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'openpanel-client-id': OPENPANEL_CLIENT_ID,\n        'openpanel-sdk-name': 'openhuman-react',\n        'openpanel-sdk-version': '0.1.0',\n      },\n      body: JSON.stringify({\n        type: 'track',\n        payload: { name: eventName, ...(profileId ? { profileId } : {}), properties },\n      }),\n      keepalive: true,\n    });\n\n    if (!response.ok) {\n      console.warn('[analytics] OpenPanel track failed:', response.status, await response.text());\n    }\n  } catch (err) {\n    console.warn('[analytics] OpenPanel track failed:', err);\n  }\n}\n\nfunction analyticsContextProperties(): AnalyticsParams {\n  const userId = currentAnalyticsUserId();\n  return {\n    user_id: userId ?? '',\n    app_version: APP_VERSION,\n    binary_version: APP_BINARY_VERSION,\n    core_cargo_version: CORE_CARGO_VERSION,\n    tauri_cargo_version: TAURI_CARGO_VERSION,\n    release: SENTRY_RELEASE,\n    build_sha: BUILD_SHA,\n    app_environment: APP_ENVIRONMENT,\n  };\n}\n\nfunction analyticsPageContextProperties(): AnalyticsParams {","sourceCodeStart":471,"sourceCodeEnd":507,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/app/src/services/analytics.ts#L471-L507","documentation":"Failure of the raw fetch POST to the OpenPanel ingestion endpoint in sendOpenPanelTrack: either the request rejected (network/offline) or the response was non-ok — the two are logged distinctly, with status and body in the non-ok case. The catch/warn path makes event loss silent to the app; keepalive was requested but delivery is best-effort.","triggerScenarios":"Thrown at app/src/services/analytics.ts:489 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Accept best-effort semantics — single lost analytics events are non-critical","Check the logged HTTP status: 4xx indicates payload/client-id misconfiguration","Verify network/CSP allows the OpenPanel endpoint if failures persist"],"exampleFix":null,"handlingStrategy":"try-catch","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"}