Troubleshooting XStore development
Callback assigned in XPackageRegisterPackageInstalled
is not hit when DLC package is installed
If DLC installation was not obvious, first check xbapp listdlc
or wdapp listdlc
to check that the expected DLC is listed.
Then check that the AllowedProduct
in DLC microsoftgame.config matches that of the base game's StoreId
node in its microsoftgame.config
If this is a Smart Delivery product and the Xbox Series X/S base game is using an ERA DLC package, and the AllowedProduct
in the ERA DLC's appxmanifest is not the same as the product ID assigned to the Xbox Series X/S base game (xbapp list /d
), then you may need to override the product ID.
This is only possible for a packaged build:
makepkg pack /d <dir> /pd <dir> /contentid <contentid> /productid <product ID of ERA product> /productidoverride
This situation can arise with a Xbox One base game that was migrated from XDP.
XStoreShowPurchaseUIAsync
on PC shows purchase dialog briefly then returns E_ABORT
This can occur when UAC (User Access Control) is set to not display the confirmation prompt to the interactive user's desktop. This is governed by this registry value:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop
being set to 1, and may have been set by your organization's security policies. Setting this to 0 should allow the proper purchase UI to display.
This page has more information on this and other related controls.
Additional XStore related error codes
Hex Value | Error | Description |
---|---|---|
0x803F6300 | XSTORE_E_NULL_LICENSE_SERVICE_CONTEXT |
The license service context is unavailable. |
0x803F6301 | XSTORE_E_NULL_STORE_CONTEXT |
The store context object is not null or not initialized. |
0x803F6302 | XSTORE_E_INVALID_ID |
An ID was passed that is invalid or unknown. |
0x803F6303 | XSTORE_E_INVALID_REQUEST |
The request has invalid parameters or format. |
0x803F6304 | XSTORE_E_INVALID_RESPONSE |
Response from the store service was not expected or invalid. |
0x803F6305 | XSTORE_E_ZERO_RESULTS |
Zero results were returned when non-zero results were expected. |
0x803F6306 | XSTORE_E_NULL_INPUT_PARAMETER |
Required parameter provided was null. |
0x803F6307 | XSTORE_E_INVALID_INPUT_PARAMETER |
Provided input parameter is invalid. |
0x803F6308 | XSTORE_E_INVALID_VERSION |
Client making the request does not meet the minimum version required. |
0x803F6309 | XSTORE_E_BAD_CONVERSION |
Unable to properly convert required parameter or response. |