fix(voice-call): log TTS errors instead of swallowing silently
Fixes #2820 The `speak()` method returns `{ success: false, error }` instead of throwing on failure. Two call sites were not checking this return value, causing TTS errors to be silently swallowed: 1. `handleInboundResponse()` in webhook.ts - callers never received AI response audio 2. `continueCall()` in manager.ts - continued to "listening" state even when TTS failed Changes: - webhook.ts: Check `speak()` return value and log errors - manager.ts: Check `speak()` return value in `continueCall()` and return early on failure Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
a109b7f1a9
commit
3ce5ac922e
@ -386,7 +386,10 @@ export class CallManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.speak(callId, prompt);
|
const speakResult = await this.speak(callId, prompt);
|
||||||
|
if (!speakResult.success) {
|
||||||
|
return { success: false, error: speakResult.error || "Failed to speak prompt" };
|
||||||
|
}
|
||||||
|
|
||||||
call.state = "listening";
|
call.state = "listening";
|
||||||
this.persistCallRecord(call);
|
this.persistCallRecord(call);
|
||||||
|
|||||||
@ -352,7 +352,10 @@ export class VoiceCallWebhookServer {
|
|||||||
|
|
||||||
if (result.text) {
|
if (result.text) {
|
||||||
console.log(`[voice-call] AI response: "${result.text}"`);
|
console.log(`[voice-call] AI response: "${result.text}"`);
|
||||||
await this.manager.speak(callId, result.text);
|
const speakResult = await this.manager.speak(callId, result.text);
|
||||||
|
if (!speakResult.success) {
|
||||||
|
console.error(`[voice-call] Failed to speak: ${speakResult.error}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(`[voice-call] Auto-response error:`, err);
|
console.error(`[voice-call] Auto-response error:`, err);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user