Unity-Technologies/UnityCsReference · error · UnityException
Launching for build target {buildTarget} is not supported: T
Error message
Launching for build target {buildTarget} is not supported: There is no build post-processor available. What it means
Raised by the launch path in PostprocessBuildPlayer when ModuleManager.GetBuildPostProcessor(buildTarget) returns null at launch time, meaning no platform module registered a post-processor capable of launching the player for that target.
Source
Thrown at Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:214
{
BuildLaunchPlayerArgs args;
args.target = buildTarget;
args.playerPackage = BuildPipeline.GetPlaybackEngineDirectory(buildTarget, options);
args.installPath = path;
args.productName = productName;
args.options = options;
args.report = buildReport;
var launchResult = postprocessor.LaunchPlayer(args);
// If platform didn't provide any platform specific results, at the very least provide default implementation
if (launchResult == null)
launchResult = new DefaultLaunchReport(NamedBuildTarget.FromActiveSettings(buildTarget), LaunchResult.Unknown);
BuildPipelineInterfaces.OnPostprocessLaunch(launchResult);
}
else
{
throw new UnityException(
$"Launching for build target {buildTarget} is not supported: There is no build post-processor available.");
}
}
public static LaunchResult GetLaunchResult(IReadOnlyList<IDeploymentLaunchResult> deploymentLaunchResults)
{
var successLaunches = 0;
foreach (var r in deploymentLaunchResults)
{
if (r.Success)
successLaunches++;
}
if (successLaunches == 0)
return LaunchResult.Failed;
if (successLaunches == deploymentLaunchResults.Count)
return LaunchResult.Succeeded;
return LaunchResult.PartiallySucceeded;View on GitHub (pinned to 225b0fbdb5)
Solutions
- Install the target's build support module via Unity Hub / Module Manager before launching.
- Use 'Build' instead of 'Build and Run' for targets without launch support, then deploy/launch manually.
- Confirm GetBuildPostProcessor returns non-null before attempting to launch.
Example fix
// before
PostprocessBuildPlayer.LaunchPlayer(buildTarget, ...);
// after
if (ModuleManager.GetBuildPostProcessor(buildTarget) == null)
EditorUtility.DisplayDialog("Launch", $"No launch support for {buildTarget}. Install the module or build only.", "OK");
else
PostprocessBuildPlayer.LaunchPlayer(buildTarget, ...); Defensive patterns
Strategy: validation
Validate before calling
if (ModuleManager.GetBuildPostProcessor(buildTarget) == null)
throw new UnityException($"No build post-processor for {buildTarget}; install the module or build-only."); Type guard
static bool CanLaunch(BuildTarget t) => ModuleManager.GetBuildPostProcessor(t) != null;
Prevention
- Check for a post-processor before invoking LaunchPlayer.
- Use Build (not Build and Run) for targets lacking launch support.
When it happens
Trigger: Calling LaunchPlayer/Launch for a build target whose platform module is not installed or does not implement IBuildPostprocessor.LaunchPlayer; the build target's support module is missing from the editor install.
Common situations: Trying to launch (Run) a build for a target whose support module was never added (e.g. console NDA modules not present); launching for a target that can build but cannot be auto-launched from the editor.
Related errors
- Could not find any valid targets to launch on for {0}
- Build target '{target}' not supported
- Could not map typename 'GameManager' to type info (initializ
- Build profile is invalid.
- Cannot start a new build because there is already a build in
AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13).
Data as JSON: /api/errors/8e75a2c8c004bfd5.
Report an issue: GitHub.