{"record":{"id":"3f01026fe4fda304","repo":"tinyhumansai/openhuman","slug":"privacy-failed-to-persist-meet-auto-handoff-sett","errorCode":null,"errorMessage":"[privacy] failed to persist meet auto-handoff setting:","messagePattern":"\\[privacy\\] failed to persist meet auto-handoff setting:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/components/settings/panels/PrivacyPanel.tsx","lineNumber":97,"sourceCode":"      cancelled = true;\n    };\n  }, []);\n\n  const handleToggleAnalytics = async () => {\n    const newValue = !analyticsEnabled;\n    try {\n      await setAnalyticsEnabled(newValue);\n    } catch (error) {\n      console.warn('[privacy] failed to persist analytics setting:', error);\n    }\n  };\n\n  const handleToggleMeetAutoHandoff = async () => {\n    const newValue = !meetAutoHandoff;\n    try {\n      await setMeetAutoOrchestratorHandoff(newValue);\n    } catch (error) {\n      console.warn('[privacy] failed to persist meet auto-handoff setting:', error);\n    }\n  };\n\n  return (\n    <SettingsPanel\n      testId=\"settings-privacy-panel\"\n      description={t('pages.settings.account.privacyDesc')}>\n      <>\n        {/* Privacy Mode selector (#4435) — data-egress posture */}\n        <PrivacyModeSection />\n\n        {/* What leaves my computer */}\n        <SettingsSection title={t('privacy.whatLeavesComputer')}>\n          {loadState === 'loading' && (\n            <p className=\"p-4 text-xs text-content-muted\">{t('privacy.loading')}</p>\n          )}\n          {loadState === 'error' && (\n            <p className=\"p-4 text-xs text-content-muted\" data-testid=\"privacy-load-error\">","sourceCodeStart":79,"sourceCodeEnd":115,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/app/src/components/settings/panels/PrivacyPanel.tsx#L79-L115","documentation":"Persisting the meet auto-handoff preference (setMeetAutoOrchestratorHandoff) failed in the Privacy panel toggle handler. Like the analytics toggle, the failure is only console-warned: the switch's optimistic state is not rolled back, so the UI may show a handoff setting that was never stored. (Meet itself has since been removed from the product, so this setting may be vestigial.)","triggerScenarios":"Thrown at app/src/components/settings/panels/PrivacyPanel.tsx:97 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the warned error to identify the failing RPC or store write","Retry the toggle after the cause is fixed and verify via the next app-state snapshot","If the setting no longer exists in the current product surface, remove the dead toggle instead of debugging the persist path"],"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-14T05:17:10.506Z"}