Zackriya-Solutions/meetily · warning · anyhow::Error
Failed to show notification: {}
Error message
Failed to show notification: {} What it means
builder.show() on a Tauri system notification returned an error - the OS rejected or failed to deliver it. On macOS this is almost always notification permission not granted or denied; on Linux it is typically a missing notification daemon/DBus session; a missing bundle identifier in packaged builds also breaks delivery.
Source
Thrown at frontend/src-tauri/src/notifications/system.rs:44
log_info!("DND is active, skipping notification: {}", notification.title);
return Ok(());
}
// Use Tauri notification for all platforms
log_info!("Showing Tauri notification: {}", notification.title);
let builder = self.app_handle.notification().builder()
.title(¬ification.title)
.body(¬ification.body);
match builder.show() {
Ok(_) => {
log_info!("Successfully showed Tauri notification: {}", notification.title);
Ok(())
}
Err(e) => {
log_error!("Failed to show Tauri notification: {}", e);
Err(anyhow!("Failed to show notification: {}", e))
}
}
}
/// Check if Do Not Disturb is currently active
/// Note: DND is managed through app settings, not system-level checks
pub async fn is_dnd_active(&self) -> bool {
// App manages DND through its own notification settings
// No need to check system-level DND status
false
}
/// Get the actual system DND status
/// Note: DND is managed through app settings, not system-level checks
pub async fn get_system_dnd_status(&self) -> bool {
// App manages DND through its own notification settings
// No need to check system-level DND status
falseView on GitHub (pinned to 0281737d87)
Solutions
- Check/request permission first via the notification plugin (is_permission_granted / request_permission) and guide the user
- Enable notifications for Meetily in OS settings (macOS System Settings > Notifications)
- On Linux, ensure a notification daemon and DBus session exist
- Ensure the packaged app has a valid bundle identifier
Defensive patterns
Strategy: validation
Validate before calling
// Check permission before attempting to show
use tauri_plugin_notification::NotificationExt;
fn can_notify<R: tauri::Runtime>(app: &tauri::AppHandle<R>) -> bool {
app.notification().is_permission_granted().unwrap_or(false)
} Try / catch
match builder.show() {
Ok(_) => Ok(()),
Err(e) => {
warn!("System notification failed: {e}");
show_in_app_banner(¬ification); // notifications are non-critical
Ok(())
}
} Prevention
- Request notification permission during onboarding
- Fall back to in-app notifications when permission is denied
- Skip system notifications on headless Linux (no DBus daemon)
When it happens
Trigger: show() called when the user denied notification permission (macOS), when no notification daemon is reachable (headless Linux, no DBus session), or when the app bundle lacks an identifier the OS can register notifications under.
Common situations: First run after the user clicks 'Don't Allow' on the notification prompt; running under cargo tauri dev where permission attribution differs; Linux without a desktop environment.
Related errors
- No meeting ID received from save operation
- Failed to create temporary WAV file: {}
- Failed to spawn ffmpeg process: {}
- Failed to open audio file '{}': {}
- Failed to get default input config: {}
AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16).
Data as JSON: /api/errors/f73f3f4da5794401.
Report an issue: GitHub.