tinyhumansai/openhuman · error

[ptt] transcription failed

Error message

[ptt] transcription failed

What it means

The push-to-talk session's speech-to-text call (deps.transcribe) threw during finalization, so the captured audio buffer could not be converted into text. Fires when the hosted STT endpoint is unreachable, returns a non-2xx, or the provider rejects the audio; per the PTT spec the transcript falls back to empty so the turn becomes a dropped session rather than a posted message.

Source

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

    }

    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 = '';
    try {
      text = await deps.transcribe(audio.buffer);
    } catch (err) {
      deps.logger.warn('[ptt] transcription failed', { sessionId, err: String(err) });
      // Per spec: post the message anyway as a breadcrumb.
      text = '[Voice — transcription failed]';
    }

    const trimmed = text.trim();

    if (!trimmed) {
      deps.logger.info('[ptt] session dropped — empty transcript', { sessionId });
      await deps.playChime('error');
      return;
    }

    let threadId: string;
    try {
      const resolved = await deps.resolveActiveThreadId();
      if (!resolved) {
        threadId = await deps.createNewVoiceThread();
      } else {

View on GitHub (pinned to 7491200858)

Solutions

  1. Check network connectivity to the configured STT host (backend, ElevenLabs, or OpenAI per voice_server.stt_engine)
  2. Inspect the full err string in the warn log to distinguish HTTP failures from provider-side rejections
  3. If the failure persists, verify the STT provider credentials/key are valid in voice settings
  4. Note that a session shorter than minAudioMs is dropped earlier with a different log line — this failure means a valid-length buffer reached the provider and transcription itself errored
Defensive patterns

Strategy: fallback

When it happens

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