tinyhumansai/openhuman · error
[ptt] audio start failed
Error message
[ptt] audio start failed
What it means
Starting the microphone capture for a new push-to-talk session failed: deps.audioCapture.start({sessionTag}) threw after the session claimed the active slot, played the open chime, and showed the overlay. The session is left in a broken claimed state (audio never starts), so the user sees/heard a session begin that cannot record.
Source
Thrown at app/src/services/pttService.ts:213
startedAtMs: deps.now(),
watchdogTimer: null,
finalizedByWatchdog: false,
};
const claimed = active;
await deps.playChime('open');
await deps.showOverlay(true, sessionId);
// If a concurrent onStart preempted us during the awaits, our claim was
// replaced. Stop here — the new claim owns the slot.
if (active !== claimed) {
return;
}
try {
await deps.audioCapture.start({ sessionTag: `ptt:${sessionId}` });
} catch (err) {
deps.logger.warn('[ptt] audio start failed', { sessionId, err: String(err) });
if (active === claimed) {
active = null;
}
await deps.playChime('error');
await deps.showOverlay(false, sessionId);
return;
}
// Re-check after the audio.start await.
if (active !== claimed) {
// Concurrent preempt replaced our claim mid-flight; we already started
// audio for an orphan session. Best-effort cancel and exit — cancellation
// failure here is non-actionable (the orphan session is already detached).
try {
await deps.audioCapture.cancel();
} catch (_) {
// ignore: orphan-session cleanup is best-effort
}View on GitHub (pinned to 7491200858)
Solutions
- Check the err string for the capture backend's reason — device busy, permission denied, or no device found
- Verify OS microphone permission has been granted to the app (the inference-gate mic-permission probe reports Unknown when compiled out)
- Confirm no other application holds exclusive access to the input device
- Restart the app if the audio subsystem is in a bad state — the active session slot is not automatically released on this failure
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at app/src/services/pttService.ts:213 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/0177db577b59eba0.
Report an issue: GitHub.