tinyhumansai/openhuman · error
[ptt] sendMessage failed
Error message
[ptt] sendMessage failed
What it means
Posting the successfully transcribed push-to-talk message to the resolved thread failed: deps.sendMessage (chatService send) threw after thread resolution succeeded. The turn's text is lost — the handler plays the error chime and returns without a retry or queue, so the user must re-speak the message.
Source
Thrown at app/src/services/pttService.ts:160
}
} catch (err) {
deps.logger.warn('[ptt] thread resolution failed — aborting commit', {
sessionId,
err: String(err),
});
await deps.playChime('error');
return;
}
try {
await deps.sendMessage({
threadId,
body: trimmed,
metadata: { source: 'ptt', session_id: sessionId },
speakReply: settings.speakReplies,
});
} catch (err) {
deps.logger.warn('[ptt] sendMessage failed', { sessionId, threadId, err: String(err) });
await deps.playChime('error');
return;
}
deps.logger.info('[ptt] session committed', {
sessionId,
threadId,
heldMs: deps.now() - session.startedAtMs,
finalizedByWatchdog: fromWatchdog,
transcriptLen: trimmed.length,
});
};
return {
async onStart(sessionId) {
// Preempt: if another session is active, cancel it.
if (active) {
deps.logger.debug('[ptt] onStart while active — preempting', {View on GitHub (pinned to 7491200858)
Solutions
- Inspect the warn log's err string to identify whether the failure was RPC transport, auth (expired session token), or thread-level rejection
- Confirm the threadId still exists server-side — a deleted/archived thread makes sendMessage fail deterministically
- Check that the core process and its socket/RPC surface are healthy at the time of the send
- If the failure is transient (network blip), re-speaking the message creates a new session that retries the full pipeline
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at app/src/services/pttService.ts:160 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/e6467d4980762495.
Report an issue: GitHub.