tinyhumansai/openhuman · error

[privacy] failed to persist analytics setting:

Error message

[privacy] failed to persist analytics setting:

What it means

Persisting the analytics opt-in/out toggle (setAnalyticsEnabled) failed in the Privacy panel's toggle handler. The warn is the only user-visible consequence — there is no inline error state and no rollback of the optimistic toggle value, so the on-screen switch can now disagree with the actually persisted consent (syncAnalyticsConsent reconciles only on the next snapshot refresh).

Source

Thrown at app/src/components/settings/panels/PrivacyPanel.tsx:88

        setCapabilities(annotated);
        setLoadState('ready');
      })
      .catch(err => {
        if (cancelled) return;
        console.warn('[privacy] failed to load capability catalog:', err);
        setLoadState('error');
      });
    return () => {
      cancelled = true;
    };
  }, []);

  const handleToggleAnalytics = async () => {
    const newValue = !analyticsEnabled;
    try {
      await setAnalyticsEnabled(newValue);
    } catch (error) {
      console.warn('[privacy] failed to persist analytics setting:', error);
    }
  };

  const handleToggleMeetAutoHandoff = async () => {
    const newValue = !meetAutoHandoff;
    try {
      await setMeetAutoOrchestratorHandoff(newValue);
    } catch (error) {
      console.warn('[privacy] failed to persist meet auto-handoff setting:', error);
    }
  };

  return (
    <SettingsPanel
      testId="settings-privacy-panel"
      description={t('pages.settings.account.privacyDesc')}>
      <>
        {/* Privacy Mode selector (#4435) — data-egress posture */}

View on GitHub (pinned to 7491200858)

Solutions

  1. Check the warned error for the failing layer (core RPC vs analytics provider SDK)
  2. Toggle analytics off and on again after the underlying cause is fixed to re-attempt the persist
  3. Verify the persisted value after the next app-state refresh rather than trusting the switch
  4. If it fails persistently, inspect the core log for the analytics consent write path
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/src/components/settings/panels/PrivacyPanel.tsx:88 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/242052c4b724c187. Report an issue: GitHub.