tonhowtf/omniget · warning
[omnidisc] noise suppression failed
Error message
[omnidisc] noise suppression failed
What it means
Logged by setNoiseSuppression() when the `omnidisc_voice_set_noise_suppression` IPC command rejects. Note the settings write still runs afterwards, so the persisted preference may disagree with actual backend state. Non-fatal.
Solutions
- Read errorText(e) for the backend cause (e.g. filter init failure).
- Start/initialize the voice session before toggling suppression.
- Verify the noise-suppression native dependency is present on the target platform.
- Reconcile state: on failure, don't persist `enabled` to settings, or read back real status.
- Confirm `omnidisc_voice_set_noise_suppression` is registered and returns Result.
Example fix
// before
try {
await invoke("omnidisc_voice_set_noise_suppression", { enabled });
} catch (e) {
console.warn("[omnidisc] noise suppression failed", errorText(e));
}
await updateSettings({ omnidisc: { voice: { noise_suppression: enabled } } });
// after
try {
await invoke("omnidisc_voice_set_noise_suppression", { enabled });
await updateSettings({ omnidisc: { voice: { noise_suppression: enabled } } });
} catch (e) {
console.warn("[omnidisc] noise suppression failed", errorText(e));
} Defensive patterns
Strategy: try-catch
Validate before calling
if (!isTauri()) return; if (!get(voiceInitialized)) await initVoice();
Type guard
function isTauri(): boolean {
return typeof window !== "undefined" && "__TAURI_INTERNALS__" in window;
} Try / catch
try {
await invoke("omnidisc_voice_set_noise_suppression", { enabled });
await updateSettings({ omnidisc: { voice: { noise_suppression: enabled } } });
} catch (e) {
console.warn("[omnidisc] noise suppression failed", errorText(e));
} Prevention
- Persist settings only after the backend call succeeds.
- Initialize the voice pipeline before toggling DSP features.
- Verify platform-specific suppression dependencies ship with the app.
- Read back backend status to reconcile UI state.
When it happens
Trigger: Calling setNoiseSuppression(enabled) when the backend command fails: noise suppression backend (e.g. RNNoise/native filter) unavailable, voice session not started, or handler error.
Common situations: Toggling noise suppression before joining a channel or without an audio pipeline; missing native suppression library on the platform; command not registered; browser dev mode.
Understand the failure class
Background: "API request failed": what wrapped HTTP errors from external APIs mean and how to find the real cause — this error's family across 29 libraries.
Related errors
- [omnidisc] stream volume failed
- [omnidisc] mute failed
- [omnidisc] deafen failed
- [omnidisc] volume failed
- [omnidisc] ducking failed
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/5968f7016b5d7e28.
Report an issue: GitHub.
Appendix: source
Thrown at src/lib/stores/omnidisc-voice-store.svelte.ts:667
const key = kind === "input" ? "input_device" : "output_device";
try {
await invoke("omnidisc_voice_set_device", { kind, id });
} catch (e) {
return errorText(e);
}
try {
await updateSettings({ omnidisc: { voice: { [key]: id } } });
} catch (e) {
console.warn("[omnidisc] device preference not saved", errorText(e));
}
return null;
}
export async function setNoiseSuppression(enabled: boolean): Promise<void> {
try {
await invoke("omnidisc_voice_set_noise_suppression", { enabled });
} catch (e) {
console.warn("[omnidisc] noise suppression failed", errorText(e));
}
await updateSettings({ omnidisc: { voice: { noise_suppression: enabled } } });
}
export async function setPttKey(key: string): Promise<void> {
await updateSettings({ omnidisc: { voice: { ptt_key: key } } });
await refreshPttStatus();
try {
await invoke("omnidisc_voice_ptt", { pressed: false });
} catch {
return;
}
}
/**
* `null` while unknown or while no key is set; `false` when the OS refused to
* hand the combination over — Windows gives it to whoever asked first, macOS
* wants Accessibility permission. Both used to fail silently, so the key justView on GitHub (pinned to 8600b91f42)