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
- No retry for the failed press — the buffered audio is gone; user re-presses
- Check mic permission/device if finalize fails repeatedly
- 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.