diff --git a/src/lib/components/Controls.svelte b/src/lib/components/Controls.svelte index 987ace0..296f465 100644 --- a/src/lib/components/Controls.svelte +++ b/src/lib/components/Controls.svelte @@ -20,14 +20,17 @@ } else { await backendStore.apiPost("/api/start"); } - // Poll status to update UI immediately instead of waiting - // for WebSocket broadcast (which can be delayed or missed) - await backendStore.pollStatus(); } catch (err: unknown) { const msg = err instanceof Error ? err.message : String(err); - console.error("Failed to toggle transcription:", msg); - errorMessage = msg; + // Ignore "Already transcribing/not transcribing" -- just sync the state + if (!msg.includes("400")) { + console.error("Failed to toggle transcription:", msg); + errorMessage = msg; + } } finally { + // Always poll status to sync UI with actual backend state, + // even if the API call failed (e.g. "Already transcribing") + await backendStore.pollStatus(); isLoading = false; } }