From e2e7943dcb02ef402917d0201fca94cac153e665 Mon Sep 17 00:00:00 2001 From: Daniel Onyejesi Date: Sun, 29 Mar 2026 22:12:02 -0400 Subject: [PATCH] v10: TTS/STT axios fixes, better error logging, stop button - TTS: switch to axios, drop voice param (configured in LiteLLM per model) - STT: log full LiteLLM error body so 500s are diagnosable in logs - TTS: same error detail logging - Fix 'ElevenLabs unavailable' toast to generic 'TTS unavailable' - Add red Stop button to encounter recording UI --- src/routes/transcribe.js | 8 ++++++-- src/routes/tts.js | 7 +++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/routes/transcribe.js b/src/routes/transcribe.js index 5c845be..1f09980 100644 --- a/src/routes/transcribe.js +++ b/src/routes/transcribe.js @@ -105,8 +105,12 @@ router.post('/transcribe', authMiddleware, upload.single('audio'), async (req, r console.log('[Transcribe] Whisper done in ' + (Date.now() - startTime) + 'ms'); res.json({ success: true, text: text, provider: 'openai-whisper', duration: Date.now() - startTime }); } catch (err) { - console.error('[Transcribe] Error:', err.message); - res.status(500).json({ error: err.message }); + // Log full LiteLLM/upstream error body so we can diagnose + var detail = err.response && err.response.data + ? JSON.stringify(err.response.data).substring(0, 500) + : err.message; + console.error('[Transcribe] Error (' + provider + '):', detail); + res.status(500).json({ error: detail }); } }); diff --git a/src/routes/tts.js b/src/routes/tts.js index 26b958b..fe00a9c 100644 --- a/src/routes/tts.js +++ b/src/routes/tts.js @@ -60,8 +60,11 @@ router.post('/text-to-speech', authMiddleware, async (req, res) => { res.status(400).json({ error: 'TTS not configured. Set LITELLM_API_BASE or ELEVENLABS_API_KEY.' }); } catch (err) { - console.error('[TTS] Error:', err.message); - res.status(500).json({ error: 'TTS failed: ' + err.message }); + var detail = err.response && err.response.data + ? JSON.stringify(err.response.data).substring(0, 500) + : err.message; + console.error('[TTS] Error (' + ttsProvider + '):', detail); + res.status(500).json({ error: 'TTS failed: ' + detail }); } });