tinyhumansai/openhuman · error

[privacy-mode] failed to set privacy mode:

Error message

[privacy-mode] failed to set privacy mode:

What it means

The settings UI's call to configSetPrivacyMode core RPC failed while applying a newly selected privacy mode, so the effective privacy mode did not change. The catch sets an inline error surfaced in the section and resets the status machine from 'saving' — the radio stays on the previous mode, which remains authoritative.

Source

Thrown at app/src/components/settings/panels/PrivacyModeSection.tsx:81

    };
  }, []);

  const handleSelect = useCallback(
    async (next: PrivacyMode) => {
      if (next === mode) return;
      log('[privacy-mode] setting mode', next);
      setStatus('saving');
      setError(null);
      try {
        const resp = await callCoreRpc<{ result: PrivacyModeResult }>({
          method: CORE_RPC_METHODS.configSetPrivacyMode,
          params: { mode: next },
        });
        setMode(resp.result.mode);
        setStatus('saved');
        setTimeout(() => setStatus('idle'), 2000);
      } catch (err) {
        console.warn('[privacy-mode] failed to set privacy mode:', err);
        setError(err instanceof Error ? err.message : String(err));
        setStatus('error');
      }
    },
    [mode]
  );

  return (
    <SettingsSection title={t('privacy.mode.title')}>
      <div className="p-4 flex flex-col gap-3">
        <p className="text-xs text-content-muted leading-relaxed">
          {t('privacy.mode.description')}
        </p>
        <div className="flex flex-col gap-2" data-testid="privacy-mode-options">
          {MODES.map(({ value, labelKey, descKey }) => {
            const isSelected = mode === value;
            return (
              <button

View on GitHub (pinned to 7491200858)

Solutions

  1. Read the console-warned error to distinguish transport failure (core unreachable) from config rejection (invalid mode value)
  2. Verify the core process is running and the RPC bearer token is valid — retry after a core restart
  3. Retry the selection once the underlying cause is fixed; the UI guards re-entry while status === 'saving'
  4. If it persistently fails, check the core log for the config.update handler's reason
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/src/components/settings/panels/PrivacyModeSection.tsx:81 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/541bdadcdfcbc9b6. Report an issue: GitHub.