tinyhumansai/openhuman · error

[ptt] audio finalize failed

Error message

[ptt] audio finalize failed

What it means

Terminal failure of PTT audio finalization in pttService: deps.audioCapture.finalize() (which awaits the recorder stop and assembles the FinalizedAudio) threw, so no usable audio exists for this press. The handler warns with the session id, plays the error chime and dismisses the overlay — the session is discarded and the next press starts fresh; no transcript is sent.

Source

Thrown at app/src/services/pttService.ts:100

    if (!active || active.sessionId !== sessionId) {
      // Stale finalisation — ignore.
      return;
    }

    if (active.watchdogTimer) {
      clearTimeout(active.watchdogTimer);
      active.watchdogTimer = null;
    }

    const settings = deps.getSettings();
    const session = active;
    active = null;

    let audio: FinalizedAudio;
    try {
      audio = await deps.audioCapture.finalize();
    } catch (err) {
      deps.logger.warn('[ptt] audio finalize failed', { sessionId, err: String(err) });
      await deps.playChime('error');
      await deps.showOverlay(false, sessionId);
      return;
    }

    await deps.playChime('close');
    await deps.showOverlay(false, sessionId);

    if (audio.durationMs < deps.minAudioMs) {
      deps.logger.info('[ptt] session dropped — audio shorter than minAudioMs', {
        sessionId,
        durationMs: audio.durationMs,
      });
      await deps.playChime('error');
      return;
    }

    let text = '';

View on GitHub (pinned to 7491200858)

Solutions

  1. No retry for the failed press — the buffered audio is gone; user re-presses
  2. Check mic permission/device if finalize fails repeatedly
  3. Ensure the watchdog cleared here cannot fire again for the discarded session
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at app/src/services/pttService.ts:100 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/e160387edec4ead3. Report an issue: GitHub.