I would like to propose a “Run Once” option for Uninstall triggers within Recast Application Workspace.
Currently, when automating uninstalls using Entra ID group membership, users are added to a designated Uninstall group. However, if users remain in that group after the uninstall completes, Application Workspace continues attempting the uninstall action. This results in unnecessary execution attempts and event noise.
A Run Once capability would prevent repeated uninstall attempts once the application has already been successfully removed.
Typical automation flow:
User is added to an Entra ID Uninstall group.
Application Workspace detects membership and triggers uninstall.
The uninstall completes successfully.
User remains in the Uninstall group.
Application Workspace continues evaluating the trigger and re-attempts uninstall.
Repeated attempts generate unnecessary events and log entries.
Even when the app is no longer present, the evaluation cycle still fires, creating:
Redundant uninstall execution attempts
Event log noise
Increased processing overhead
Administrative confusion during monitoring
Uninstall triggers based on group membership are state-persistent, not event-driven.
Because group membership remains true until manually removed, the system repeatedly evaluates the condition and re-runs the uninstall logic, even when:
The application is already removed
The uninstall exit code previously returned success
No further action is required
This creates an inefficiency in automation workflows and introduces avoidable operational noise.
When enabled, this option would:
Execute the uninstall action once per device/user per trigger instance.
Record completion state.
Suppress further uninstall attempts unless:
The trigger is manually reset, or
The application is detected as reinstalled.
Store a local or service-side completion flag when:
Uninstall exit code indicates success
Detection logic confirms application absence
Future evaluations would check:
If (UninstallCompleted = True) → Skip executionBefore running uninstall:
If (AppDetected = False) → Do Not ExecuteThis would eliminate redundant executions while preserving group-based automation.
Optionally remove the device/user from the uninstall group after success.
This may not be desirable in all environments but could be an advanced toggle.
Reduces unnecessary execution attempts
Decreases event and log noise
Improves automation hygiene
Reduces backend processing load
Aligns uninstall triggers with one-time workflow expectations
Provides parity with how many administrators conceptually expect “removal” workflows to function
In automated lifecycle management:
IT adds a user to an “Uninstall – AppName” Entra group.
The application is removed.
The user remains in the group for audit or policy tracking.
Application Workspace continues to attempt removal on every evaluation cycle.
A Run Once option would make the uninstall action behave as an event rather than a persistent enforcement loop.
Uninstalls are typically transactional, not continuously enforced states.
Install enforcement makes sense as a persistent condition:
“Ensure the app exists.”
Uninstall enforcement often behaves differently:
“Remove the app once.”
Providing a Run Once toggle would align the product with real-world automation workflows and reduce unnecessary operational overhead.