stride3d/stride · error · ArgumentException
Build manifest [ ] doesn't exist
Error message
Build manifest [{0}] doesn't exist What it means
ValidateOptions throws this ArgumentException when a .sdbuild build manifest was supplied via PackageManifestFile but File.Exists reports the file is not present at that path. The tool treats a nonexistent explicit manifest as a configuration error rather than silently building nothing. The message is formatted with the actual path for diagnosis.
Solutions
- Verify the manifest path is correct and the file exists (ls / File.Exists) before running the tool
- Use an absolute path for --package-manifest-file instead of a relative one
- Run the tool from the directory where the relative path is valid
- Check CI/container setup ensures the manifest is present at the expected location
Example fix
// before --package-manifest-file=./Build/manifest.sdbuild // after --package-manifest-file=$(pwd)/Build/manifest.sdbuild
Defensive patterns
Strategy: validation
Validate before calling
if (!string.IsNullOrWhiteSpace(manifestPath) && !File.Exists(Path.GetFullPath(manifestPath)))
throw new FileNotFoundException("Build manifest not found", Path.GetFullPath(manifestPath)); Try / catch
try { RunBuilder(options); } catch (ArgumentException ex) when (ex.ParamName == "packageManifestFile") { Console.Error.WriteLine($"Manifest missing: {options.PackageManifestFile}"); return 1; } Prevention
- Use absolute paths for manifest files
- Check File.Exists before invoking the tool
- Ensure CI steps copy/generate the manifest before the build runs
When it happens
Trigger: Invoking the builder with --package-manifest-file (or setting PackageManifestFile) pointing to a path that does not exist: typo'd filename, wrong working directory, relative path resolved from an unexpected location, or the manifest was deleted/moved before the run.
Common situations: Running the build tool from a different CWD than intended so relative manifest paths break; CI checkout producing a different directory layout; manifest not copied into a container image; case-sensitivity mismatches on Linux.
Understand the failure class
Background: "File not found" and ENOENT errors: why libraries can't find a file that should exist — this error's family across 50 libraries.
Related errors
- The provided path is not a valid path name.
- This tool requires an input file (package, project, or…
- Package file [ ] doesn't exist
- Unable to find the base
- Unable to find the graph corresponding to the base part
AI-assisted analysis of stride3d/stride@96fad776d2 (2026-09-14).
Data as JSON: /api/errors/2441a679e18297a1.
Report an issue: GitHub.
Appendix: source
Thrown at sources/assets/Stride.AssetCompiler/PackageBuilderOptions.cs:97
{
if (string.IsNullOrWhiteSpace(BuildDirectory))
throw new ArgumentException("This tool requires a build path.", "build-path");
try
{
BuildDirectory = Path.GetFullPath(BuildDirectory);
}
catch (Exception)
{
throw new ArgumentException("The provided path is not a valid path name.", "build-path");
}
if (SlavePipe == null)
{
if (!string.IsNullOrWhiteSpace(PackageManifestFile))
{
if (!File.Exists(PackageManifestFile))
throw new ArgumentException("Build manifest [{0}] doesn't exist".ToFormat(PackageManifestFile), "packageManifestFile");
}
else if (string.IsNullOrWhiteSpace(PackageFile))
{
if (string.IsNullOrWhiteSpace(SolutionFile) || PackageId == Guid.Empty)
{
throw new ArgumentException("This tool requires an input file (package, project, or .sdbuild manifest), or a --solution-file and --package-id.", "inputPackageFile");
}
}
else if (!File.Exists(PackageFile))
{
throw new ArgumentException("Package file [{0}] doesn't exist".ToFormat(PackageFile), "inputPackageFile");
}
}
}
}
}
View on GitHub (pinned to 96fad776d2)