Unity Safe Mode We are always looking to improve the experience of working with Unity based on feedback from you and our internal production teams. One of the areas identified was how Unity behaves as errors are detected and reported during initial script compilation and Asset importing when upgrading a project. Consequently, we have recently improved how Unity behaves during startup and how we report compilation errors that happen during startup of Unity, as well as the initial process of bringing up the environment/domain that contains your project. In this post, we wanted to share why and what we have been working on and invite you to provide feedback on how we can make it even better How compilation errors are handled Today any compilation errors in scripts and packages during startup will result in their respective assemblies not being loaded since they couldn't be compiled. After the compilation is completed, Unity then continues to import assets. In practice, many projects depend on scripts being present for post-processing or custom scriptable importers or simply to correctly deserialize prefabs. Either through code directly in your project or the packages you depend on. This causes four problems that make project upgrades time consuming: 1) All asset imports have to be completed before you can fix any compile errors, which can take a significant amount of time on a large project. 2) Asset imports might result in various other errors simply because some of the dll's that a project expects to be loaded were not loaded due to compilation errors. Thus you might experience a bunch of errors that aren't real errors, giving you misleading information in terms of an efficient debugging workflow. 3) If asset dependencies are not correctly declared in Asset Importers & post-processors, the project Library cache folder caches incorrect artifacts because the code couldn’t be loaded. 4) If asset dependencies are correctly declared in the asset importer / postprocessor C# code, it results in importing those assets once before fixing compile errors and once after fixing compile errors, increasing the total import time significantly. Introducing Unity Safe Mode With our latest changes and Safe Mode, if any compile errors occur while Unity is starting up, we now prompt you to enter the new Safe Mode, where you can manage your project, solve compilation errors and bring the project environment back into a working state. Safe mode is entered before any other assets are imported. Thus opening a project into safe mode and fixing compile errors is significantly quicker than waiting for the whole project to import first and then fixing compile errors. It also makes it much clearer which errors need to be fixed and as an added benefit makes it less likely to have incorrectly cached artifacts. Safe Mode has a limited set of functionality compared with the regular Unity editor, that helps you resolve the compilation errors that occurred and bring your project back into a working state, without causing any additional runtime errors from missing loaded assemblies. This includes, but is not limited to: Project View with the ability to manage scripts and assembly definitions Code editors integration Packman window Console Inspector We feel that this will greatly improve the process of upgrading projects and significantly reduce the risk of projects needing to be rolled back or recovered. How to try it out today and how you can help We are looking for feedback on all aspects of the new Safe Mode state of Unity. We are especially interested in knowing if we have missed functionality that you feel is important to have present during safe mode. Please use this forum thread to provide us with your feedback. Our R&D and QA staff work hard to make sure that our releases are stable, features polished and the workflows help you be more productive, but there is no way we could do it without all the feedback from the community. If you like to know more about how you can get access to preview features and our beta program, please visit our official beta program pages.