Submission Validator (SubmissionValidator.dll)

Submission Validator is a component of the Microsoft Game Development Kit (GDK) that runs basic quality checks on a title or app package. It helps developers identify common problems early, before submitting a package for certification. Submission Validator warnings and some failures can be deferred when publishing for testing in a development sandbox or through Playtest in RETAIL; a failure doesn't, by itself, prohibit all publishing. When you submit your title for certification for a commercial release, you must meet the applicable certification and commercial release requirements.

Development sandbox publishing versus certification

A publisher development sandbox provides an isolated environment for development and testing, rather than distribution to a commercial release audience. You can defer addressing Submission Validator warnings and some failures when publishing to this environment.

Playtest is another testing workflow where Submission Validator warnings and some failures can be deferred. Playtest publishes in RETAIL, but it isn't a certified commercial retail release. Its location in RETAIL doesn't, by itself, require a clean Submission Validator result for Playtest publishing.

For both workflows, keep running Submission Validator and review each warning and failure before proceeding. A finding can identify a real problem with installation, launch, or game functionality, even when it doesn't prevent publication for testing. Retain the validation log, understand the impact on your intended tests, and test the published package in the target environment. Not every package with failures can be published, and successful publication doesn't guarantee that the game works correctly. Package creation, upload, and applicable publishing requirements still apply.

Scenario How to use Submission Validator results
Local development and sideloading Review findings to diagnose package and runtime problems. Distinguish Submission Validator findings from errors that prevent package creation or installation. Sideloading isn't sandbox publishing.
Publishing to a publisher development/test sandbox Warnings and some failures can be deferred for development and testing. Evaluate each finding and verify that the package works for the intended tests. Successful publication doesn't establish certification readiness.
Publishing through Playtest in RETAIL Warnings and some failures can be deferred for Playtest testing. This isn't a certified commercial retail release. Evaluate each finding and test the published package; a successful Playtest publish doesn't establish certification readiness.
Submitting for certification and preparing commercial release Meet the applicable certification requirements, including validation with the current version of Submission Validator. Resolve failures before certification submission, or work with your Microsoft representative through the applicable certification exception process.

In this guidance, development/test sandbox means a publisher development sandbox, not CERT, CERT.DEBUG, or RETAIL. Playtest is a separate testing workflow in RETAIL that also permits deferring warnings and some failures. Don't generalize that allowance to all RETAIL publishing: a private audience, beta, or Game Preview release isn't automatically covered. Follow the applicable beta and Game Preview requirements and certification guidance for those distributions. For sandbox types, see Advanced XBOX services sandboxes.

If you're unsure whether a particular finding can be deferred for your development sandbox or Playtest publishing scenario, contact your developer account manager (DAM).

Using Submission Validator

Submission Validator isn't a standalone tool that the developer uses. Rather, it's automatically called to check an app when the makepkg pack command is used. For more information about syntax and command-line use, see the makepkg reference page. MakePkg and Submission Validator normally create symbol bundles automatically. If automatic symbol bundling isn't available, see Create a symbol bundle manually.

Submission Validator runs after the title package is created. Validation failures are recorded in the validation log, which is written to the output location that's specified on the makepkg command line. This is the same output location where the finished title package is created. A localized version of the output is also available (in addition to the English output) at the same location if the /validationlanguage parameter is set on makepkg. The current additional supported validation language is ja-jp.

A subset of Submission Validator tests can be run before title package creation by running the makepkg validate command line. We recommend running it to catch issues before package creation.

Problems identified by Submission Validator

The types of problems that Submission Validator identifies will grow and evolve over time to work toward the goal of smoothing the way from submission, through certification, and to market. For the current list of problems that Submission Validator detects, see Submission Validator quality checks.

Understanding the results log

After package creation, the title package and validation log are in the output folder. You can recognize the log by its name in the form of "Validator_[title and package identifier].xml." Examine it for failures and warnings. A <failure> tag identifies a failed validation check; it isn't a universal prohibition on development sandbox or Playtest publishing. Review its impact as described in Development sandbox publishing versus certification. Before submitting for certification, resolve failures or follow the applicable certification exception process with your Microsoft representative.

You might also see <warning> tags in the log. Review these findings for their impact on testing and for issues that require remediation or an exception before certification. Warnings can be deferred for development sandbox or Playtest publishing as described above. If you have questions about any warnings that are identified, contact your developer account manager (DAM). Even if you're granted an exception for your title, the <warning> tag still appears in the log file. For a full list of log messages, see Submission Validator Messages.

The <validatorrun> section is at the end of the log, shown as follows. This section contains a <result> tag that indicates overall Fail or Success for Submission Validator tests. Any failure in any section results in an overall Fail result. This summarizes the validation checks, not a publishing decision for every destination. Deferring a finding for development testing doesn't change its severity or the log result.

<validatorrun>
  <starttime>Sep 23 2019 16:43:41</starttime>
  <endtime>Sep 23 2019 16:43:41</endtime>
  <result>Fail</result>
</validatorrun>  

The version number for Submission Validator that's being used for the test is at the top of the log file. The following example shows this version number in a log file.

<XboxOneSubmissionValidator>
  <engineversion>10.0.18362.7198</engineversion>  

Your submission will be tested by using the latest version of Submission Validator when your submission is received at Microsoft. We strongly recommend that you regularly update the version of Submission Validator that you're using as you prepare to submit your title. For more information, see the following section.

Updating Submission Validator

Submission Validator is implemented as a separate SubmissionValidator.dll found in the \Bin directory of the Microsoft Game Development Kit (GDK). Updates to Submission Validator won't always correspond to the release cycle of the Microsoft Game Development Kit (GDK). The current version of Submission Validator is always available for download from developer.microsoft.com/games/resources -> downloads. Download the compressed (.zip) file, open it, and place the updated SubmissionValidator.dll in the \Bin directory of the Microsoft Game Development Kit (GDK), overwriting the previous version of Submission Validator. The Certification Tools page also includes the current release version number and date. Inside the compressed file, there's a text file containing release notes for the current version, including known issues and information about changes to the checks performed by Submission Validator that differ from the descriptions in this article.

Starting with the October 2025 GDK, makepkg supports the /updatesubval option, which checks for a newer version of SubmissionValidator.dll. If an update is available, the option downloads and installs the DLL in the directory that contains makepkg.exe, which is the GDK \Bin directory by default. If /validationpath is specified, the DLL is installed in that directory instead. If the update fails, packaging or validation continues with the currently installed version of SubmissionValidator.dll.

Starting with the October 2026 GDK, use the standalone makepkg updatesubval command to update SubmissionValidator.dll without creating, validating, or uploading a package. Unlike the /updatesubval option, the standalone command returns a nonzero exit code if the update fails.

When an app, a title, or a content package is submitted to Microsoft, the current version of Submission Validator is used to check that submission. Before you submit your app, title, or content package, we recommend that you ensure that you have the current version of Submission Validator on the development PC on which the submission package is being built.

Submission Validator release notes

For more information on what changes with each release of Submission Validator, please see the Submission Validator Updates feed on the Xbox Developer Forums.

Submission Validator topics

Create a symbol bundle manually

Describes how to create and upload a symbol bundle when automatic symbol bundling isn't available.

Submission Validator quality checks

Describes the quality checks that are performed by Submission Validator.

Submission Validator Messages

Describes the messages (warnings, errors, and advisories) that are generated by the Submission Validator.

Make package (makepkg.exe)

Title packaging, content updates, and streaming-installation testing

Xbox Requirements (XRs) (Xbox Developer Downloads->Partner, Publishing, and Release Management Information->XGD Partner Documentation)