{"record":{"id":"af1b0fef4a809b24","repo":"Unity-Technologies/UnityCsReference","slug":"cannot-start-assemblybuilder-with-status-0-expe","errorCode":null,"errorMessage":"Cannot start AssemblyBuilder with status {0}. Expected {1}","messagePattern":"Cannot start AssemblyBuilder with status (.+?)\\. Expected (.+?)","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"Editor/Mono/Scripting/ScriptCompilation/AssemblyBuilder.cs","lineNumber":100,"sourceCode":"            buildTargetGroup = EditorUserBuildSettings.activeBuildTargetGroup;\n            buildTarget = EditorUserBuildSettings.activeBuildTarget;\n        }\n\n        public bool Build()\n        {\n            return Build(EditorCompilationInterface.Instance);\n        }\n\n        internal bool Build(EditorCompilation editorCompilation)\n        {\n            if (editorCompilation.IsCompilationTaskCompiling()\n                || editorCompilation.IsAnyAssemblyBuilderCompiling())\n            {\n                return false;\n            }\n\n            if (status != AssemblyBuilderStatus.NotStarted)\n                throw new Exception(string.Format(\"Cannot start AssemblyBuilder with status {0}. Expected {1}\", status, AssemblyBuilderStatus.NotStarted));\n\n            var assembly = editorCompilation.CreateScriptAssembly(this);\n#pragma warning disable UA2001 // The Banned API Analyzer produces compile errors for any new Linq code. This pre-existing usage has been suppressed, but should be rewritten if possible.\n            var assemblies = assembly.AllRecursiveScripAssemblyReferencesIncludingSelf().ToArray();\n#pragma warning restore UA2001\n\n            // Start clean everytime\n            const string beeAssemblyBuilderDirectory = \"Library/BeeAssemblyBuilder\";\n            string beeAssemblyBuilderDirectoryInProjectDirectory =\n                string.IsNullOrEmpty(editorCompilation.projectDirectory)\n                ? beeAssemblyBuilderDirectory\n                : Path.Combine(editorCompilation.projectDirectory, beeAssemblyBuilderDirectory);\n\n            if (Directory.Exists(beeAssemblyBuilderDirectoryInProjectDirectory))\n                Directory.Delete(beeAssemblyBuilderDirectoryInProjectDirectory, true);\n\n            var debug = compilerOptions.CodeOptimization == CodeOptimization.Debug;\n","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/Unity-Technologies/UnityCsReference/blob/225b0fbdb57cc17d094e8056b71f8314aba56f73/Editor/Mono/Scripting/ScriptCompilation/AssemblyBuilder.cs#L82-L118","documentation":"Thrown by AssemblyBuilder.Build when status is not AssemblyBuilderStatus.NotStarted. A builder can only be started once; calling Build on an already-started/compiling/finished builder is rejected.","triggerScenarios":"Calling Build() on an AssemblyBuilder whose status has advanced past NotStarted (e.g. calling Build twice on the same instance).","commonSituations":"Reusing a single AssemblyBuilder instance for multiple builds, or calling Build after a previous attempt already moved the status.","solutions":["Create a fresh AssemblyBuilder instance for each build.","Check builder.status == AssemblyBuilderStatus.NotStarted before calling Build."],"exampleFix":"// before\nbuilder.Build();\nbuilder.Build(); // throws\n// after\nif (builder.status != AssemblyBuilderStatus.NotStarted) builder = new AssemblyBuilder(path, scripts);\nbuilder.Build();","handlingStrategy":"validation","validationCode":"if (builder.status != AssemblyBuilderStatus.NotStarted)\n    builder = new AssemblyBuilder(assemblyPath, scripts); // fresh instance\nbuilder.Build();","typeGuard":"static bool CanStart(AssemblyBuilder b) =>\n    b.status == AssemblyBuilderStatus.NotStarted;","tryCatchPattern":"try { builder.Build(); }\ncatch (Exception ex) when (ex.Message.Contains(\"Cannot start AssemblyBuilder\"))\n{ /* create a new builder instance and rebuild */ }","preventionTips":["Treat an AssemblyBuilder as single-use; make a new one per build.","Check status before calling Build to fail fast."],"tags":["script-compilation","validation","lifecycle"],"backgroundTag":null,"analyzedSha":"225b0fbdb57cc17d094e8056b71f8314aba56f73","analyzedAt":"2026-08-13T19:07:19.849Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}