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

  1. Inspect the warn log's err string to identify whether the failure was RPC transport, auth (expired session token), or thread-level rejection
  2. Confirm the threadId still exists server-side — a deleted/archived thread makes sendMessage fail deterministically
  3. Check that the core process and its socket/RPC surface are healthy at the time of the send
  4. 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.