Ivy-Interactive / Ivy-Interactive/Rustino

[Notifications]: Windows native toast notifications are silently dropped without a registered AppUserModelID (AUMID)

Open
#11 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Rust
Stars
6
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Description

When using the Rustino native notifications API on Windows, toast notifications are silently swallowed by the operating system if the provided app_id is not tied to a registered AppUserModelID (AUMID) via a Start Menu .lnk shortcut.

The library executes without throwing any errors, giving the false impression that the notification was successfully displayed, but nothing appears in the Windows Action Center. This makes it impossible to use native notifications for standard, unpackaged executable applications (.exe builds) out of the box.

Steps to Reproduce
  1. Build an application that consumes the Rustino notification API as a standalone .exe.
  2. Trigger a notification using a custom app_id (e.g., "Ivy Tendril").
  3. Observe that no errors are thrown, but the notification never appears on the screen.
Validation & The PowerShell Hack

To isolate the issue and prove it's entirely tied to AUMID registration, we tested a workaround. We replaced our custom app_id with the built-in Windows PowerShell AUMID:
{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe

As soon as we injected this known, pre-registered AUMID, the Rustino notifications rendered perfectly on the desktop (though naturally displaying the PowerShell name and icon). This confirms that the lack of a registered Start Menu shortcut is the sole blocker.

Expected Behavior

Native notifications should either:

  1. Work out of the box for unpackaged Win32 applications, OR
  2. Provide a clear error/warning that the app_id is unregistered.
Proposed Solution

We suggest one of the following approaches:

  • Feature: Add a helper method in Rustino.Native (perhaps Rustino::register_aumid(app_id)) that uses the COM IShellLink and IPropertyStore interfaces to automatically create the required Start Menu shortcut upon application startup.
  • Documentation: Explicitly document this Windows limitation in the README, warning developers that they must manually create a Start Menu .lnk via an installer (MSI/InnoSetup) or a C# COM script before the notifications API will function on Windows 10/11.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Rustino.Native notification entry point and the Windows AUMID behavior described in the issue. Reproduce the standalone .exe case with a custom app_id, then compare it with the PowerShell AUMID workaround. Done means either unpackaged applications work with a registered AUMID or the README clearly documents the limitation and required shortcut setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.