We use the [PostProcessScene] attribute to optimize scenes during build. One of those optimizations is to remove objects and components from Prefab Instances in the scene, that are not required at run-time, with a particular configuration of that prefab instance. The game contains simple scene processors, that just remove an object depending on its tag. But we have also more complicated processors that analyze objects, merge those, create new ones, and remove parts of them. Often the idea is that a prefab carries more information than needed and we use a scene processor to optimize or cleanup the unneeded parts during a build. Many of those prefab instances are instantiated, placed and configured in the scene via scripting. This was working flawlessly from Unity 5 to 2017. Now with 2018.3.0b3, Unity starts to output the following error: The provided project is a minimalist reproduce to illustrate the issue. It uses the "EditorOnly" tag to detect which objects to remove for simplicity. I'm aware that Unity removes "EditorOnly" objects itself, but for the sake of simplicity I choose this tag to create a reproduce for you. This is actually a big deal for us, because it causes our optimization pipeline to not work anymore. Reproduce Open "unity_2017_4.zip" project in Unity 2017.4 Create a Windows 64bit Standalone build Notice Unity does not output an error Open project in Unity 2018.3.0b3 Create a Windows 64bit Standalone build Actual result Unity 2018.3.0b3 outputs "Cannot destroy GameObject that is part of a prefab instance." error during the build. Expected result No error. The functionality from Unity 2017.4, where objects can be removed from prefab instances, should be kept intact.