tinyhumansai/openhuman · error

[dictation] failed to fetch dictation settings

Error message

[dictation] failed to fetch dictation settings

What it means

Failure of the initial settings fetch in useDictationHotkey: the RPC that loads dictation settings (enabled, activation mode, hotkey) rejected, so the hook cannot know whether the core has registered a global hotkey. The catch warns and the hook falls back to its defaults — dictation appears disabled until settings load successfully.

Source

Thrown at app/src/hooks/useDictationHotkey.ts:103

        // Handle RpcOutcome wrapper — the result may be nested in .result
        const s = (
          'result' in settings ? (settings as Record<string, unknown>).result : settings
        ) as DictationSettings;

        setDictationEnabled(s.enabled);
        setActivationMode(s.activation_mode ?? 'toggle');
        setHotkey(s.hotkey ?? '');

        if (s.enabled && s.hotkey) {
          // The core process registers the hotkey via rdev — we just note it.
          setHotkeyRegistered(true);
          console.debug(`[dictation] core hotkey active: ${s.hotkey}`);
        } else {
          console.debug('[dictation] dictation disabled or no hotkey configured');
        }
      } catch (err) {
        console.warn('[dictation] failed to fetch dictation settings', err);
      }
    };

    void init();

    return () => {
      disposed = true;
    };
  }, []);

  // Open a dedicated Socket.IO connection to the core for dictation
  // events. This is independent of the main socketService (which
  // requires auth) so dictation works even when not logged in.
  useEffect(() => {
    let socket: Socket | null = null;
    let disposed = false;

    const connect = async () => {

View on GitHub (pinned to 7491200858)

Solutions

  1. Verify the core RPC is reachable (core process up, token valid)
  2. Retry the settings fetch on reconnect/socket re-establishment
  3. Surface the failure in UI state instead of only console when dictation is expected on
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/src/hooks/useDictationHotkey.ts:103 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/fdbee1bd8596c3fd. Report an issue: GitHub.