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.

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.

See also

Commerce Overview

Enabling XStore development and testing

XStore API reference