When uninstalling a Store app in Windows 10, you may get the error 0x80073CFA
. This happens whether you use the Apps & Features GUI or PowerShell command to remove the app. Many users have indicated that the error happens when uninstalling some game apps like Forza Motorsport, Forza Horizon, Asphalt: Airborne, etc.
We couldn't uninstall app_name The operation did not complete successfully. Try again in a bit. The error code is 0x80073CFA, in case you need it.
However, the error 0x80073CFA
is not specific to Microsoft gaming apps. It can happen for any app, for that matter.
Attempting to uninstalling the app using PowerShell’s Remove-AppxPackage
would result in the same error code:
Remove-AppxPackage : Deployment failed with HRESULT: 0x80073CFA, Removal failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CFA) error 0x80070032: AppX Deployment Remove operation on package package_name from: C:\WINDOWS\SystemApps\package_path failed. This app is part of Windows and cannot be uninstalled on a per-user basis. An administrator can attempt to remove the app from the computer using Turn Windows Features on or off. However, it may not be possible to uninstall the app.
(The above error happened when attempting to uninstall the in-box package named Microsoft.Windows.PeopleExperienceHost
for the sake of illustration.)
Cause
The 0x80073CFA
error (“Removal failed. Please contact your software vendor.”) occurs if you try to uninstall a non-removable inbox app. Inbox apps are official Microsoft apps bundled with Windows 10 and installed during Windows 10 Setup — e.g., Photos, Calendar, Alarma, Camera, Calculator, People app, etc. Some of the inbox apps are “non-removable” and some are removable — e.g., the Photos app.
The StateRepository-Machine.srd
database has a field named IsInbox against app which may be set to 1
or 0
. If it’s set to 1
, it’s a designated inbox app. For non-removable apps, PowerShell’s Get-AppxPackage <PackageName>
command will show that the package is NonRemovable
.
If you need to trim down Windows by removing unused or unwanted apps, there is a way to forcibly remove them even though they’re marked as non-removable inbox apps. To do so, you need to first set the IsInbox
value to 0
by editing the StateRepository-Machine.srd
database.
Solution for Error 0x80073CFA
To forcibly uninstall a stubborn or non-removable Store app and prevent the error 0x80070032
, follow these steps:
Step 1: Install Python3
Install Python3 if you don’t have it installed already. You can download the Python3 installer from the following links:
- For Windows x86: https://www.python.org/ftp/python/3.7.3/python-3.7.3.exe
- For Windows x64: https://www.python.org/ftp/python/3.7.3/python-3.7.3-amd64.exe
Step 2: Get the Python script file: “Fix.py”
Download the Python script file named “Fix.py” from the following GitHub link:
https://gist.github.com/DoubleLabyrinth/ffae94cb9444bbdae1d11deeaa247310#file-fix-py
(Credits to the coder DoubleLabyrinth for this neat little script.)
After downloading it, open “Fix.Py
” in Notepad.
Edit the code at line #8 and change the app name. The script has the following code at line #8:
WHERE PackageFullName LIKE "Microsoft.Windows.HolographicFirstRun%";
You want to change that to the application name you’re trying to uninstall – e.g. if you’re trying to remove Microsoft.Windows.PeopleExperienceHost
, add it there.
WHERE PackageFullName LIKE "Microsoft.Windows.PeopleExperienceHost%";
Save the Python script file “Fix.py
” and close Notepad.
get-appxpackage *partial_name_of_the_app*
Example:
get-appxpackage *peopleexperience*
From the PowerShell output, copy the app name shown adjacent to the “Name:
” column.
Step 3: Run the Python script
Open Command Prompt under the SYSTEM account. The best way to do this is to download PsExec.exe from Windows Sysinternals.
From an administrator Command Prompt, run the following command-line:
psexec.exe -i -s -d cmd.exe
(The above command assumes the folder that has PsExec.exe
is in the PATH. If not, mention the full path to PsExec.exe
)
If the above command is successful, it opens a new Command Prompt window — but under the LocalSystem
privileges.
Switch to the Command Prompt (Local System) window and perform the rest of the procedure:
First, backup the StateRepository-Machine.srd
database file using the following command-line:
copy "%ProgramData%\Microsoft\Windows\AppRepository\StateRepository-Machine.srd" c:\backup.srd
Then, run the Python script file using the following command-line syntax:
Python.exe scriptfilename.py
Example:
"C:\Users\Ramesh Srinivasan\AppData\Local\Programs\Python\Python37\python.exe" "C:\Users\Ramesh Srinivasan\Desktop\fix.py"
The following output means that the script has run successfully:
Trigger "TRG_AFTER_UPDATE_Package_SRJournal" has been cleared. IsInbox of "Microsoft.Windows.PeopleExperienceHost_10.0.19041.423_neutral_neutral_cw5n1h2txyewy" has been set to 0. Trigger "TRG_AFTER_UPDATE_Package_SRJournal" has been restored.
The script has successfully changed the IsInbox
value data to 0
in the StateRepository-Machine.srd
database.
Manual procedure
As an alternative to the Python script method, you can manually modify the IsInbox
value by using the “DB Browser for SQLite” software. However, in Windows 2004 and 20H2, you’ll need to remove the AFTERDELETE
(“TRG_AFTERDELETE_Package_Key”) trigger first. After modifying the IsInbox
value, restore the AFTERDELETE
trigger.
Or else, you’ll see the following error:
DB Browser for SQLite Error changing data: no such function: is_srjournal_enabled
For the manual procedure, you may use the excellent instructions at this site → How To Force Remove Windows Store (UWP) Apps.
Step 4: Uninstall the app using PowerShell
After completing Steps 1-3, you should be able to uninstall the problematic app now using PowerShell.
Run the command:
Get-AppxPackage <app_name> | Remove-AppxPackage
To remove it for all users, run the following from an admin PowerShell window:
Get-AppxPackage -allusers <app_name> | Remove-AppxPackage
That fixes the error 0x80073CFA
. On pre-Windows v2004 systems, you may be able to modify the IsInbox
value directly using SQLite Browser utility without removing the trigger(s). This post is based on the Windows 10 version 20H2 build 10.0.19042.685 which is the current build as of this post.
One small request: If you liked this post, please share this?
One "tiny" share from you would seriously help a lot with the growth of this blog. Some great suggestions:- Pin it!
- Share it to your favorite blog + Facebook, Reddit
- Tweet it!
This is a really helpful instructional article. You explained everything very well. It will help me defeat Microsoft’s desire to thwart my attempts to make my system MY system. I had gotten ridge of Edge completely months ago until it suddenly appeared again yesterday. Nothing is safe from Microsoft’s intrusive lack of respect for their customers, IMO.
I wasn’t aware of the IsInbox classification, StateRepository-Machine.srd , etc.
Thank you again!
Even running python as LocalSystem account i get the error: “sqlite3.OperationalError: no such function: is_srjournal_enabled”
Are you sure the instructions are complete?