{"record":{"id":"2441a679e18297a1","repo":"stride3d/stride","slug":"build-manifest-0-doesn-t-exist","errorCode":null,"errorMessage":"Build manifest [{0}] doesn't exist","messagePattern":"Build manifest \\[(.+?)\\] doesn't exist","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"sources/assets/Stride.AssetCompiler/PackageBuilderOptions.cs","lineNumber":97,"sourceCode":"        {\n            if (string.IsNullOrWhiteSpace(BuildDirectory))\n                throw new ArgumentException(\"This tool requires a build path.\", \"build-path\");\n\n            try\n            {\n                BuildDirectory = Path.GetFullPath(BuildDirectory);\n            }\n            catch (Exception)\n            {\n                throw new ArgumentException(\"The provided path is not a valid path name.\", \"build-path\");\n            }\n\n            if (SlavePipe == null)\n            {\n                if (!string.IsNullOrWhiteSpace(PackageManifestFile))\n                {\n                    if (!File.Exists(PackageManifestFile))\n                        throw new ArgumentException(\"Build manifest [{0}] doesn't exist\".ToFormat(PackageManifestFile), \"packageManifestFile\");\n                }\n                else if (string.IsNullOrWhiteSpace(PackageFile))\n                {\n                    if (string.IsNullOrWhiteSpace(SolutionFile) || PackageId == Guid.Empty)\n                    {\n                        throw new ArgumentException(\"This tool requires an input file (package, project, or .sdbuild manifest), or a --solution-file and --package-id.\", \"inputPackageFile\");\n                    }\n                }\n                else if (!File.Exists(PackageFile))\n                {\n                    throw new ArgumentException(\"Package file [{0}] doesn't exist\".ToFormat(PackageFile), \"inputPackageFile\");\n                }\n            }\n        }\n    }\n}\n","sourceCodeStart":79,"sourceCodeEnd":114,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/assets/Stride.AssetCompiler/PackageBuilderOptions.cs#L79-L114","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\n--package-manifest-file=./Build/manifest.sdbuild\n// after\n--package-manifest-file=$(pwd)/Build/manifest.sdbuild","handlingStrategy":"validation","validationCode":"if (!string.IsNullOrWhiteSpace(manifestPath) && !File.Exists(Path.GetFullPath(manifestPath)))\n    throw new FileNotFoundException(\"Build manifest not found\", Path.GetFullPath(manifestPath));","typeGuard":null,"tryCatchPattern":"try { RunBuilder(options); } catch (ArgumentException ex) when (ex.ParamName == \"packageManifestFile\") { Console.Error.WriteLine($\"Manifest missing: {options.PackageManifestFile}\"); return 1; }","preventionTips":["Use absolute paths for manifest files","Check File.Exists before invoking the tool","Ensure CI steps copy/generate the manifest before the build runs"],"tags":["dotnet","files","validation","cli"],"backgroundTag":"file-not-found","analyzedSha":"96fad776d210c221682aac1ccdf4c79dc046fc38","analyzedAt":"2026-09-14T02:59:31.279Z","contentChangedAt":"2026-09-14T02:59:31.279Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}