Skip to content

Est. 2011ยทMicrosoft Partner 7033487ยทDelivery under 3 minยทSupport 7 days a week

Your vault is empty.

Free Fix 0x80073CF9

0x80073CF9: MSIX or Appx Install Failed – Read the Deployment Log First

10 min read Updated October 4, 2026 Installers, Runtimes & App Deployment

Fix it now

Microsoft publishes 0x80073CF9 as ERROR_INSTALL_FAILED, “Package install failed”, and that is the whole of it. It is a wrapper, not a diagnosis. The useful information is the inner error recorded in the deployment log, which names the package, file or state that actually stopped the install.

Run these in an elevated PowerShell session, in order

Add-AppxPackage -Path .\package.msix
Get-AppxLog
Get-AppxLog | Out-GridView
Get-Service AppXSvc,ClipSVC,StateRepository
  1. Retry the install, then read the log for that attempt straight away. Get-AppxLog prints the entries for the most recent deployment operation; piping it to Out-GridView makes a long one readable.
  2. The same entries are in Event Viewer under Applications and Services Logs, Microsoft, Windows, AppXDeploymentServer, Operational, if you would rather read them there.
  3. Find the inner error and the package name in the result entry. Work from that code, not from 0x80073CF9.
  4. If the inner error names a framework package, supply the dependencies in the same operation: Add-AppxPackage -Path .\package.msix -DependencyPath .\dep1.appx,.\dep2.appx.

Searching for 0x80073CF9 on its own produces a mass of unrelated advice, because every person writing it up had a different inner error. Get the inner one first.

If the package installs you are done. If the inner error points somewhere you do not recognise, the next section maps the documented ones onto what to do.

Why it happens

Deploying a packaged application is a multi-stage operation. The package is opened and validated, its signature is checked, its dependencies are resolved, the payload is staged into the package repository, and a registration is written for the user. Each stage fails for its own reasons and raises its own error internally.

What surfaces at the top is usually the generic install failure. Installers, the App Installer application, management tools and deployment scripts all tend to show 0x80073CF9 rather than the inner code, because the inner code was produced several layers down. That is why advice for this code is so scattered: every writer was actually fixing something else.

Microsoft documents the inner codes, and they are specific. 0x80073CF0 is ERROR_INSTALL_OPEN_PACKAGE_FAILED, and its documented causes are worth reading carefully: the package is not signed, the publisher name in the manifest does not match the signing certificate’s subject, or the path was given without the file:// prefix. That is a very different investigation from a damaged download. 0x80073CF1 is the package not being found, 0x80073CF2 is package data that is invalid, 0x80073CF3 is a dependency or conflict validation failure, and 0x80073CF6 is a package that cannot be registered.

0x87AF0813 turns up in the same conversations and has no published meaning at all – no Microsoft documentation page defines it. Treat it exactly as you treat 0x80073CF9: read the deployment log entry that carries it and work from what the operation was doing.

The inner error is a dependency failure

You have this one if The log names a framework package – a C++ runtime framework or a UI framework – rather than your application, or the inner code is 0x80073CF3.

  1. Obtain the framework packages the vendor lists as prerequisites, in the architecture of the target device.
  2. Install them first, or pass them in the same operation with -DependencyPath.
  3. Confirm they registered: Get-AppxPackage -Name <FrameworkName> -AllUsers.
  4. Retry the main package.

Framework packages are architecture-specific. On a 64-bit device an x86 application still needs the x86 framework, which the x64 framework does not supply.

The package cannot be opened

You have this one if The inner code is 0x80073CF0.

  1. Confirm the package is signed, and that the certificate is trusted on this device.
  2. Compare the Publisher in the package manifest with the Subject of the signing certificate. They have to match exactly, character for character.
  3. If you are installing from a path, use a file:// URI or a plain local path rather than a bare UNC string.
  4. Check the signature with Get-AuthenticodeSignature .\package.msix | Format-List.

A previous attempt left the package half staged

You have this one if The log mentions existing state or a package already present, and reinstalling repeats the failure identically.

  1. List every registration: Get-AppxPackage -Name <PackageName> -AllUsers.
  2. Remove each one from an elevated session: Remove-AppxPackage -Package <PackageFullName> -AllUsers.
  3. If the package was provisioned for new users, remove that too with Get-AppxProvisionedPackage -Online and Remove-AppxProvisionedPackage -Online -PackageName <name>.
  4. Reboot, then install again.

Removing a package normally deletes its per-user data. Add -PreserveApplicationData to Remove-AppxPackage if the settings inside the package matter.

A deployment service is stopped, or the session is not elevated

You have this one if Deployment fails immediately for every package, including known-good ones from the Store.

  1. Check the supporting services: Get-Service AppXSvc,ClipSVC,StateRepository.
  2. Start any that are stopped and set them back to their default startup type if someone has disabled them.
  3. Run the installation from an elevated PowerShell session. Anything touching every user, including -AllUsers and provisioning, requires elevation.

The component store underneath is damaged

You have this one if Several unrelated packages fail, Store installs also fail, and the log entries vary from attempt to attempt.

  1. Run DISM /Online /Cleanup-Image /RestoreHealth from an elevated Command Prompt and let it finish.
  2. Follow with sfc /scannow, then reboot.
  3. Retry the deployment and read the log again. If the inner error has changed, work the new one.

Full reference

The documented deployment errors

Code Name Documented meaning
0x80073CF0 ERROR_INSTALL_OPEN_PACKAGE_FAILED The package could not be opened: unsigned, a publisher name mismatch, or a missing file:// prefix
0x80073CF1 ERROR_INSTALL_PACKAGE_NOT_FOUND The package could not be found
0x80073CF2 ERROR_INSTALL_INVALID_PACKAGE The package data is invalid
0x80073CF3 ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED The package failed dependency or conflict validation
0x80073CF6 ERROR_INSTALL_REGISTRATION_FAILURE The package cannot be registered
0x80073CF9 ERROR_INSTALL_FAILED Package install failed – the generic wrapper
0x80073CFB ERROR_PACKAGE_ALREADY_EXISTS The package is already installed and reinstallation is blocked
0x8007000B ERROR_BAD_FORMAT The package is incorrectly formatted, or the signing certificate subject name does not match

0x80073CF0 and 0x8007000B both point at the signing relationship, and between them they account for a large share of sideloading failures on packages that were built in-house. The rule to remember is that the Publisher string in the manifest and the Subject of the signing certificate must be identical, not merely similar.

Where the log lives

Command or location What it gives you
Get-AppxLog The entries for the most recent deployment operation, in the console
Get-AppxLog | Out-GridView The same, in a sortable window – much easier on a long operation
Event Viewer, Applications and Services Logs, Microsoft, Windows, AppXDeploymentServer, Operational The inner error and package name for every deployment attempt
Microsoft-Windows-AppxPackaging/Operational Additional detail from the packaging layer

Deployment commands

Command What it does
Add-AppxPackage -Path .\package.msix Installs a package for the current user
Add-AppxPackage -Path .\p.msix -DependencyPath .\a.appx,.\b.appx Installs it with its framework dependencies in one operation
Get-AppxPackage -Name <name> -AllUsers Shows every registration of a package across profiles
Remove-AppxPackage -Package <fullname> -AllUsers Removes a package for every user, clearing leftover state
Get-AppxProvisionedPackage -Online Lists packages provisioned to install for new profiles

Why a package installs on one machine and not another

  • Which framework packages are already present, and in which architectures.
  • What is already registered for that user, and whether an older version is blocking the new one.
  • Whether the signing certificate is trusted on the device.
  • Whether deployment policy on the device permits what you are doing.
  • Whether the package repository and the component store underneath are healthy.
  • Compare those five things between the working machine and the failing one before anything else.

Codes without a published meaning

0x87AF0813 has no Microsoft documentation behind it. It appears in reports of Store and App Installer failures and nowhere in the vendor’s own error tables. When you meet a code like that, the productive move is to stop treating it as a lookup problem: find the log entry that carries it, read what operation was in flight, and diagnose that. The same discipline applies to 0x80073CF9 itself, which does have a published meaning and still tells you nothing useful on its own.

Every code this article covers

Code What it points at Source
0x80073CF9 ERROR_INSTALL_FAILED: package install failed. A generic wrapper – the real cause is the inner error in the deployment log Microsoft Learn
0x80073CF0 ERROR_INSTALL_OPEN_PACKAGE_FAILED: the package could not be opened. Documented causes are an unsigned package, a publisher name that does not match the signing certificate, or a path given without the file:// prefix Microsoft Learn
0x80073CF2 ERROR_INSTALL_INVALID_PACKAGE: the package data is invalid Microsoft Learn
0x80073CF1 ERROR_INSTALL_PACKAGE_NOT_FOUND: the package could not be found Microsoft Learn
0x87AF0813 No Microsoft page publishes a meaning for this code. Read the deployment log entry that carries it and work from the operation it was performing not published by the vendor

Confirm the fix worked

  1. Run Get-AppxPackage -Name <PackageName> and confirm the package is listed with the version you intended.
  2. Launch the application from Start and confirm it opens.
  3. Re-read the AppXDeploymentServer Operational log and confirm the latest entry records success rather than a new inner error.
  4. Sign in as a second user, if the package was provisioned, and confirm it appears for them too.
  5. Run Get-Service AppXSvc,ClipSVC,StateRepository once more and confirm all three are running.

Questions people ask about this

Do I need to buy anything to fix this?

No. This is a diagnosis exercise using tools already on the machine. Event Viewer, PowerShell, DISM and sfc are all built in, and no licence changes anything about a generic deployment failure.

What does 0x80073CF9 actually mean?

Microsoft publishes it as ERROR_INSTALL_FAILED, package install failed. That is the whole published meaning. It is a wrapper around an inner error produced several layers down, and the inner error is the one worth having.

The log gives 0x80073CF0. Should I re-download the package?

Probably not. Microsoft documents that code as the package failing to open because it is not signed, because the publisher name does not match the signing certificate’s subject, or because the path was supplied without the file:// prefix. Check those three before assuming the file is damaged.

Is it safe to remove a package for all users to clear the state?

Yes for an application you are about to reinstall, but it deletes per-user data held inside the package unless you preserve it. Warn the users first, and use -PreserveApplicationData if their in-app settings matter.

Can I see the inner error without Event Viewer?

Yes. Run the install from PowerShell and follow it immediately with Get-AppxLog, which reads the same log and prints the entries for the operation you just performed. Pipe it to Out-GridView if the operation was a long one.

Related error codes

Was this article helpful?

Your feedback helps us improve our documentation.

Related articles

Free Fix 0x800C0006: .NET Web Installer and ClickOnce Downloads Fail Part-Way Free Fix MSI 1310 and 1303: The Installer Cannot Write to the Path It Was Given Free Fix MSI 1327: Invalid Drive – Fixing Broken Shell Folder and Mapped Drive Paths Free Fix MSI 1904 and 1920: Module Failed to Register or Service Failed to Start
โ† Back to Knowledge Base