stride3d/stride · error · ArgumentException
This tool requires an input file (package, project, or…
Error message
This tool requires an input file (package, project, or .sdbuild manifest), or a --solution-file and --package-id.
What it means
ValidateOptions throws this ArgumentException when no usable input was provided: neither PackageManifestFile, PackageFile, nor a SolutionFile together with a non-empty PackageId. The builder needs at least one of these to know what to build. The 'inputPackageFile' parameter name points at the missing input option.
Solutions
- Pass one explicit input: --package-manifest-file, or --input-package-file, or both --solution-file and --package-id
- Verify the variables backing these arguments are non-empty at invocation time
- Use a .sdbuild manifest file when multiple assets/packages must be built together
- Check the tool's argument parsing/help for the current option names
Example fix
// before Stride.AssetCompiler --solution-file=MyGame.sln // after Stride.AssetCompiler --solution-file=MyGame.sln --package-id=8a4c9f20-1111-2222-3333-444455556666
Defensive patterns
Strategy: validation
Validate before calling
bool hasInput = !string.IsNullOrWhiteSpace(manifestFile)
|| !string.IsNullOrWhiteSpace(packageFile)
|| (!string.IsNullOrWhiteSpace(solutionFile) && packageId != Guid.Empty);
if (!hasInput) throw new ArgumentException("Provide a package, project, or .sdbuild manifest (or solution-file + package-id)"); Try / catch
try { RunBuilder(options); } catch (ArgumentException ex) when (ex.ParamName == "inputPackageFile" && ex.Message.Contains("requires an input file")) { Console.Error.WriteLine("No build input supplied; see --help"); return 1; } Prevention
- Always pass one explicit input option to the builder
- Assert script variables feeding these options are non-empty
- Check the tool help after upgrading Stride to catch renamed options
When it happens
Trigger: Running the PackageBuilder tool with none of --package-manifest-file, --input-package-file, or the --solution-file + --package-id pair; e.g. only --solution-file given, or --package-id given with an empty Guid; argument parsing dropped options due to a script bug.
Common situations: Incomplete CI pipeline invocations after option renames between Stride versions; scripts where variables feeding the arguments were empty; users assuming the tool builds a whole solution by default (it does not).
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- The provided path is not a valid path name.
- Build manifest [ ] doesn't exist
- 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/9736c343c807b82c.
Report an issue: GitHub.
Appendix: source
Thrown at sources/assets/Stride.AssetCompiler/PackageBuilderOptions.cs:103
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)