Unity-Technologies/UnityCsReference · error · Exception

Invalid extension manifest at \"{0}\".

Error message

Invalid extension manifest at \"{0}\".

What it means

Thrown from the UWPExtension constructor when parsing a UWP extension SDK manifest (XDocument). The <FileList> element's TargetPlatform attribute is read and must equal "UAP"; any other value (or an unexpected manifest schema) is rejected as an invalid extension manifest before references are resolved.

Source

Thrown at Editor/Mono/Scripting/Compilers/UWPReferences.cs:71

            DefaultFallback = defaultFallback;
        }
    }

    [VisibleToOtherModules("UnityEditor.BurstModule")]
    internal static class UWPReferences
    {
        private sealed class UWPExtension
        {
            public string Name { get; private set; }

            public string[] References { get; private set; }

            public UWPExtension(string manifest, string windowsKitsFolder, string sdkVersion)
            {
                var document = XDocument.Load(manifest);
                var fileListElement = document.Element("FileList");
                if (fileListElement.Attribute("TargetPlatform").Value != "UAP")
                    throw new Exception(string.Format("Invalid extension manifest at \"{0}\".", manifest));
                Name = fileListElement.Attribute("DisplayName").Value;
                var containedApiContractsElement = fileListElement.Element("ContainedApiContracts");
                References = GetReferences(windowsKitsFolder, sdkVersion, containedApiContractsElement);
            }
        }

        private static readonly Version kMinimumSupportedUWPVersion = new Version(10, 0, 19041, 0);
        private static readonly PreviousUWPSDK kMinimumSupportedPreviousUWPSDK = new PreviousUWPSDK(kMinimumSupportedUWPVersion, true);
        private static readonly UWPSDK kMinimumSupportedUWPSDK = new UWPSDK(kMinimumSupportedUWPVersion, new Version(16, 0), new[] { kMinimumSupportedPreviousUWPSDK });

        public static UWPSDK MinimumSupportedUWPSDK { get { return kMinimumSupportedUWPSDK; } }
        public static string GetBinPath(UWPSDK sdk, string architecture)
        {
            var folder = GetWindowsKit10();
            if (string.IsNullOrEmpty(folder))
                return null;
            var version = SdkVersionToString(sdk.Version);

View on GitHub (pinned to 225b0fbdb5)

Solutions

  1. Install/select a supported UWP/UAP SDK and a Windows Kits folder whose extension manifests declare TargetPlatform="UAP".
  2. Verify the sdkVersion and windowsKitsFolder passed to UWP references resolve to a real UAP extension SDK.
  3. Inspect the manifest path shown in the message and confirm its <FileList> element is a valid UAP extension manifest.
Defensive patterns

Strategy: validation

Validate before calling

var doc = XDocument.Load(manifest);
var fileList = doc.Element("FileList");
if (fileList?.Attribute("TargetPlatform")?.Value != "UAP")
    throw new InvalidOperationException($"{manifest} is not a UAP extension manifest; check the Windows SDK path.");

Try / catch

try
{
    var ext = new UWPExtension(manifest, windowsKitsFolder, sdkVersion);
}
catch (Exception ex) when (ex.Message.Contains("Invalid extension manifest"))
{
    // Point the build at a UAP-capable SDK manifest instead.
}

Prevention

When it happens

Trigger: Constructing a UWPExtension with a manifest whose <FileList TargetPlatform="..."> attribute is not "UAP", during UWP player build reference resolution.

Common situations: Pointing the build at the wrong Windows SDK / kits folder, an outdated or hand-edited extension SDK manifest, mismatched UWP SDK version selection, or a non-UAP SDK manifest being picked up.

Related errors


AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13). Data as JSON: /api/errors/45b90b481ff26c98. Report an issue: GitHub.