cjpais/Handy · error
failed to register transcription signal handlers
Error message
failed to register transcription signal handlers
What it means
Error "failed to register transcription signal handlers" thrown in cjpais/Handy.
Source
Thrown at src-tauri/src/signal_handle.rs:38
c.send_input(binding_id, source, true, false);
} else {
warn!("TranscriptionCoordinator not initialized");
}
}
/// Listen for Unix signals that remotely toggle transcription.
///
/// SIGUSR2 toggles plain transcription on all Unix platforms. SIGUSR1
/// (transcription with post-processing) is only handled on macOS: on Linux,
/// WebKitGTK's JavaScriptCore garbage collector sends SIGUSR1 to its own
/// threads to suspend them, so handling it caused phantom recordings on every
/// GC cycle (#1660). Linux users should use `handy --toggle-post-process`
/// instead.
#[cfg(unix)]
pub fn setup_signal_handler(app_handle: AppHandle) {
#[cfg(target_os = "macos")]
let mut signals =
Signals::new([SIGUSR1, SIGUSR2]).expect("failed to register transcription signal handlers");
#[cfg(not(target_os = "macos"))]
let mut signals =
Signals::new([SIGUSR2]).expect("failed to register transcription signal handlers");
#[cfg(target_os = "macos")]
debug!("Signal handlers registered (SIGUSR1, SIGUSR2)");
#[cfg(not(target_os = "macos"))]
debug!("Signal handler registered (SIGUSR2; SIGUSR1 is left to WebKitGTK)");
thread::spawn(move || {
for sig in signals.forever() {
let (binding_id, signal_name) = match sig {
#[cfg(target_os = "macos")]
SIGUSR1 => ("transcribe_with_post_process", "SIGUSR1"),
SIGUSR2 => ("transcribe", "SIGUSR2"),
_ => continue,
};
debug!("Received {signal_name}");
send_transcription_input(&app_handle, binding_id, signal_name);
}View on GitHub (pinned to 98a4d80cce)
When it happens
Trigger: Thrown at src-tauri/src/signal_handle.rs:38 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of cjpais/Handy@98a4d80cce (2026-08-16).
Data as JSON: /api/errors/1f66a202d7117123.
Report an issue: GitHub.