How to update an MSIX app on the Microsoft Store
To update an MSIX app, you build a new package with the same identity as the one in the Store and a higher version, start an update in Partner Center, swap in the new package and submit it for certification. Most rejected uploads come down to the version number or an identity value that doesn't match Partner Center exactly.
An update is a new submission with a new package. Get the version and identity right and the upload goes through.
- The version has four numbers, and the last one stays 0, like 1.4.0.0. Microsoft reserves it for the Store.
- Make the new version higher than the live one, or customers who already have the app won’t get it.
- Copy Name, Publisher and PublisherDisplayName from the Product identity page in Partner Center. They are case-sensitive.
- If the app was released as a bundle, every later submission has to include a bundle too.
- Customers get the update from the Store automatically, so a Store build doesn’t need its own updater.
How to number the new version
The version lives in the Version attribute of the Identity element in your package manifest. Microsoft's package requirements say the fourth part is reserved for the Store and must be 0 when you build the package. The other parts can be 0 to 65535, but the first part can't be 0. So 1.4.0.0 and 2.0.3.0 work, and 1.4.0.1 and 0.9.0.0 don't.
When a customer installs or updates the app, the Store gives each device the highest version it can run. That means an update only reaches existing customers if its version is higher than the one they have. You can upload a lower version, for example to roll back for new customers, but people who already have the newer one keep it.
Two packages can share a version only if they're built for different architectures, because the Store needs each package's full identity to be unique. It goes by the full name, which is the name, version and architecture together, and it remembers packages from earlier submissions. If you rebuild 1.4.0.0 for x64 with different contents, bump the version instead of uploading it again.
Make the package identity match Partner Center
Every package of your app belongs to one package family, set by three values in the manifest. You find them in Partner Center under Product management, on the Product identity page:
- Package/Identity/Name
- Package/Identity/Publisher
- Package/Properties/PublisherDisplayName
<Identity
Name="Contoso.NotesApp"
Publisher="CN=12345678-1234-1234-1234-123456789ABC"
Version="1.4.0.0"
ProcessorArchitecture="x64" />The values above are made up, so copy yours from Partner Center. Microsoft says manifest values are case-sensitive and spaces and punctuation have to match too. Visual Studio fills them in when you package while signed in with your developer account. If you build with MakeAppx, a framework's packaging tool or a CI script, check them by hand. You don't need your own signing certificate for a Store package, since the Store re-signs MSIX packages with a Microsoft certificate after certification.
Architectures and bundles
A single .msix targets one architecture, set by ProcessorArchitecture: x86, x64, arm, arm64 or neutral. To support several, you can upload one package per architecture or an .msixbundle that holds them all. Microsoft recommends bundles where you can, and every package in a bundle has to have the same identity except for the architecture.
Choose before your first release, because switching later is hard. Developers moving from UWP to WinUI 3 have reported that once an app was released with a bundle, Partner Center won't accept a submission without one.
How to submit the update in Partner Center
- Open your app in Partner Center and click Start update in the Product release section. This makes a new submission that starts from your last one.
- On the Packages page, drag in the new package. If Partner Center finds a problem, it shows a message, and you remove the package, fix it and upload again.
- Remove the old package, or accept Partner Center's offer to remove redundant packages that no customer would get anymore.
- Optionally, turn on gradual rollout to send the update to a percentage of customers first, or mark it as mandatory if your app checks for that.
- Write What's new in this version on the Store listing page for each language, and update anything else that changed.
- Click Submit for certification on the app overview page.
Microsoft says certification can take up to three business days, and our guide to how long certification takes covers each step after you submit. If the update is rejected, see why submissions fail certification.
How customers get the update
Microsoft's update docs say that once the update is approved, it replaces the previous version in the Store and existing users get it through the Store automatically. MSIX updates are differential, so a device downloads only the 64 KB blocks that changed. You don't need to build an updater into the Store version of your app.
If you do want the app to offer updates itself, the StoreContext APIs can check the Store for a newer package and install it. Microsoft doesn't enforce mandatory updates for you. Your own code has to check for them and change its behavior.
Common upload errors and how to fix them
| What you see | What it means | How to fix it |
|---|---|---|
| "The name found in the package is not one of your reserved app names." | The name in the package is wrong, or it is a name you haven’t reserved for this app. | Check Product identity, reserve the name under Manage app name reservations if needed, and rebuild with the exact values. |
| "All .msix and .appx packages (including previously published and currently uploaded) must be uniquely identified by their full names." | A package with the same name, version and architecture was uploaded before with different contents, even if you deleted it since. | Raise the version, for example from 1.4.0.0 to 1.4.1.0, and rebuild. |
| "A previous submission for this app was released with a Windows 10/11 .msixbundle or .appxbundle." | The app shipped as a bundle, and this submission has only a single package. | Build an .msixbundle with MakeAppx and upload that. |
| The last part of the version isn’t 0 | The fourth part is reserved for the Store. | Set it to 0 and raise one of the first three parts instead. |
| Publisher or PublisherDisplayName doesn’t match | The values in the manifest aren’t the ones Partner Center shows for your app. | Copy both from the Product identity page and rebuild. |
| The update uploads but customers don’t get it | The new version isn’t higher than the one they have. | Submit a package with a higher version. |
The first message is from Microsoft's submission errors page. The second and third are from developers' reports on Microsoft Q&A, so the exact wording in Partner Center may differ a little.
How StoreFast checks the package before upload
When you drop an .msix on your app's page, StoreFast reads the manifest in your browser before anything uploads. It checks that the package name is the one this app has in Partner Center, that the version is higher than the live one and that the version has four parts ending in .0. Each check shows as a line with the reason, and Continue stays off until all of them pass. The live version is the highest package version in your last published submission, read from Partner Center.
StoreFast's server checks again when the update starts. The version has to be four numbers of up to 65535, end in .0 and be higher than the live one, including when you publish through the API or an AI agent. Before submitting, it checks that Partner Center has no other submission in progress for the app.
StoreFast takes one .msix per update and puts it in place of the packages in your last submission. It doesn't take bundles yet, so if your app ships as an .msixbundle or with a package per architecture, keep using Partner Center for packages for now. The steps are in the publishing docs.
Questions
- Why does the last number of my MSIX version have to be 0?
- Microsoft reserves the fourth part of the version for the Store, so you build the package with it set to 0, like 1.4.0.0. The Store may change that part itself. The other three parts can be any number from 0 to 65535, except that the first part can't be 0.
- Does the new version have to be higher than the one in the Store?
- To reach people who already have the app, yes. Each device gets the highest version it qualifies for, so a customer on 1.4.0.0 won't move to a lower one. Partner Center also rejects a package whose full name, the name, version and architecture together, matches an earlier package with different contents.
- Do I need an in-app updater for the Store version of my app?
- No. Microsoft says existing users get an update through the Store automatically once it passes certification. If you want the app to prompt for updates or block old versions, you can use the StoreContext APIs and mark an update as mandatory in Partner Center.
- Can I switch from an .msixbundle back to a single .msix?
- Partner Center has refused this. If a previous submission was released with a bundle, later submissions must keep containing a bundle.
- Can I update only the listing without a new package?
- Yes. You start an update in Partner Center, change the listing and leave the packages as they are. The change still goes through certification.
Check the version and name before Microsoft does
Drop your .msix on StoreFast and it checks the package name and version, uploads it with your release notes and submits the update. Try it free for 7 days, no card needed.
Sources
Facts about Microsoft's tools were checked against these pages on October 5, 2026.
- App package requirements for MSIX apps
- Upload MSIX app packages
- Publish an update to your app on the Store
- Resolve submission errors for MSIX apps
- View app identity details
- Identity element in the package manifest
- Download and install package updates from the Store
- What is MSIX?
- Microsoft Q&A: package full names must be unique
- Microsoft Q&A: later submissions must contain a bundle