AppX Provisioned Package Deadlock Causing User Profile Creation Delays or Temporary Profile on Windows 10/11 Enterprise
On Windows 10 and Windows 11 Enterprise shared workstations and RDS session hosts, new users experience login delays exceeding 5 minutes or are dropped into temporary profiles. The User Profile Service deadlocks while staging default provisioned AppX applications due to lock contention with background AppX optimization processes. Resolution requires de-provisioning unnecessary AppX packages from the base system image using PowerShell before fleet deployment.
Indicators
- New user login delay exceeding 5 minutes on shared workstations or RDS session hosts
- Users landing in a temporary profile environment instead of their roaming or local profile
- Application Event Log: User Profile Service Event ID 1509 — file deployment permission issues or timeouts
- Application Event Log: User Profile Service Event ID 1511 — file deployment permission issues or timeouts
- Broken hot-desking setups impacting shift-worker productivity in hospital or call-centre operations
Likely causes
- The User Profile Service deadlocks while attempting to stage default provisioned AppX applications for a newly created user profile, because background AppX optimization runs hold locks on the same package resources simultaneously.
- Excess provisioned default built-in AppX packages remain in the base system image, increasing contention surface between the profile creation path and background optimization processes at login time.
Diagnostic steps
-
Open Event Viewer on the affected system and navigate to Windows Logs > Application. Filter by Source 'User Profile Service' and look for Event ID 1509 or 1511. Review the event detail for file deployment permission errors or timeout messages.Confirms the User Profile Service is deadlocking during AppX staging and differentiates this issue from other profile creation failures.
-
Time a new user login on the affected shared workstation or RDS host with a stopwatch or session audit log. Confirm whether the delay exceeds 5 minutes or if the user is placed into a temporary profile.Establishes whether the symptom threshold (>5 minute delay or temporary profile) is met, qualifying the incident for this triage path.
-
Run PowerShell command: Get-AppxProvisionedPackage -Online | Select-Object DisplayName, PackageNameIdentifies which default built-in AppX packages are provisioned and available for staging at new user profile creation, revealing the scope of the deadlock risk.
-
Check Task Manager or Process Monitor on the affected system during a new user login to identify whether AppX-related background optimization processes (e.g., AppXSVC, Windows App Readiness) are running concurrently and holding locks.Validates that background optimization runs are active simultaneously with profile creation, confirming the deadlock causation mechanism.
-
Cross-reference the timestamps of Event ID 1509/1511 entries with any scheduled AppX optimization or Windows Update activity logs to confirm temporal correlation between background locks and profile creation failures.Establishes a timeline linking background AppX optimization runs to the profile service deadlock events, supporting escalation documentation if required.
Resolution path
- Identify unnecessary default built-in provisioned AppX packages on the base image using PowerShell: Get-AppxProvisionedPackage -Online | Select-Object DisplayName, PackageName — review the output and determine which packages are not required for the target user population.
- De-provision each unnecessary AppX package from the base system image using PowerShell: Remove-AppxProvisionedPackage -Online -PackageName '<PackageName>' — repeat for each package identified as non-essential. This reduces the number of packages the User Profile Service must stage at new user login.
- Capture the cleaned base image and redeploy it to the affected shared workstation or RDS session host fleet to ensure all new profile creation events operate against the reduced AppX package set.
- After redeployment, validate that new user logins complete within an acceptable time and no longer produce Event ID 1509 or 1511 in the Application Event Log.
Prevention
- De-provision all unnecessary default built-in AppX packages from the base system image as a standard step in the desktop image build process before deploying to shared workstation or RDS fleets, reducing the AppX staging burden on the User Profile Service at new user login.
- Implement a scheduled maintenance policy that staggers or disables background AppX optimization runs during peak login hours on shared workstations and RDS session hosts, preventing lock contention between optimization processes and profile creation.
- Establish a standard image validation step that tests new user profile creation performance (login time and profile type) against any updated base image before production fleet deployment, catching AppX staging regressions early.
Tools
- PowerShell — enumerate and remove provisioned AppX packages (Get-AppxProvisionedPackage, Remove-AppxProvisionedPackage)
- Event Viewer — review Application Event Log for User Profile Service Event ID 1509 and 1511
- Task Manager / Process Monitor — identify concurrent AppX optimization lock holders during login
References
- Source: AppX Package Clean-up Deadlocks Impacting User Profile Creation — The Triage Manual Batch 1779701639895