DioxusLabs/dioxus · error

tray icon builder failed

Error message

tray icon builder failed

What it means

`init_tray_icon` builds the system tray icon with `tray_icon::TrayIconBuilder` and `expect`s the builder to succeed. This panic fires when the OS tray API rejects the icon/menu setup (e.g. unsupported platform state or invalid icon data); failures are considered unrecoverable for tray support.

Solutions

  1. Check the tray icon configuration (icon data, size, platform support); the underlying tray icon builder rejected the provided values.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at packages/desktop/src/trayicon.rs:45 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of DioxusLabs/dioxus@24f6a829df (2026-08-23). Data as JSON: /api/errors/c41adba795153cc3. Report an issue: GitHub.

Appendix: source

Thrown at packages/desktop/src/trayicon.rs:45

#[allow(unused)]
pub fn init_tray_icon(menu: DioxusTrayMenu, icon: Option<DioxusTrayIcon>) -> DioxusTray {
    #[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
    {
        let icon = icon.map(Ok).unwrap_or_else(crate::default_icon);

        let tray = tray_icon::TrayIconBuilder::new()
            .with_menu(Box::new(menu))
            .with_menu_on_left_click(false);

        let tray = match icon {
            Ok(icon) => tray.with_icon(icon),
            Err(err) => {
                tracing::trace!("No tray icon: {:?}", err);
                tray
            }
        };

        provide_context(tray.build().expect("tray icon builder failed"))
    }
}

/// Returns a default tray icon menu
pub fn default_tray_icon() -> DioxusTrayMenu {
    #[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
    {
        use tray_icon::menu::{Menu, PredefinedMenuItem};
        let tray_menu = Menu::new();
        tray_menu
            .append_items(&[&PredefinedMenuItem::quit(None)])
            .unwrap();
        tray_menu
    }
}

/// Provides a hook to the tray icon
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]

View on GitHub (pinned to 24f6a829df)