# StrictMode

> Fails the build if any errors are reported during it.

## Definition

* **Type:** Field
* **Namespace:** [UnityEditor](/engine/6000.7/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
StrictMode = 512
```

### Remarks

Without this flag, non-fatal errors, such as a failure to compile a shader for a particular platform, won't cause the build to fail, but might result in incorrect behavior at runtime.

Always set this flag, unless errors are logged from packages or other third-party code that you can't fix, and you need the build to proceed despite them.

When this flag is set, errors logged from these build callbacks also fail the build: [IPreprocessBuildWithContext.OnPreprocessBuild](/engine/6000.7/script-reference/unityeditor/build/ipreprocessbuildwithcontext/onpreprocessbuild.md), [IPostprocessBuildWithContext.OnPostprocessBuild](/engine/6000.7/script-reference/unityeditor/build/ipostprocessbuildwithcontext/onpostprocessbuild.md), [IProcessSceneWithReport.OnProcessScene](/engine/6000.7/script-reference/unityeditor/build/iprocessscenewithreport/onprocessscene.md), [IPreprocessShaders.OnProcessShader](/engine/6000.7/script-reference/unityeditor/build/ipreprocessshaders/onprocessshader.md), and [IPreprocessComputeShaders.OnProcessComputeShader](/engine/6000.7/script-reference/unityeditor/build/ipreprocesscomputeshaders/onprocesscomputeshader.md).

This flag is the AssetBundle equivalent of [BuildOptions.StrictMode](/engine/6000.7/script-reference/unityeditor/buildoptions/strictmode.md).

Additional Resources: [BuildOptions.StrictMode](/engine/6000.7/script-reference/unityeditor/buildoptions/strictmode.md), [BuildContentOptions.FailBuildWhenErrorsLogged](/engine/6000.7/script-reference/unityeditor/buildcontentoptions/failbuildwhenerrorslogged.md)

### Examples

```csharp
//Create a folder (right click in the Assets folder and go to <b>Create</b>><b>Folder</b>), and name it "Editor" if it doesn't already exist
//Place this script in the Editor folder

//This script creates a new Menu named "Build Asset" and new options for different Build Asset Bundle Options. Click these menu items to build an AssetBundle.

using UnityEngine;
using UnityEditor;

namespace BuildDocExamples
{
    public class BuildAssetBundleOptions_Examples
    {
        //Creates a new menu (Build Asset Bundles) and item (Normal) in the Editor
        [MenuItem("BuildDocExamples/Build Asset Bundles/Normal")]
        static void BuildABsNone()
        {
            //Build AssetBundles with no special options
            //They will be written in the custom folder ("MyAssetBuilds") which needs to exist prior to this call.
            BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.None, BuildTarget.StandaloneOSX);
        }

        //Creates a new item (Append Hash) in the new Build Asset Bundles menu
        [MenuItem("BuildDocExamples/Build Asset Bundles/Append Hash")]
        static void BuildABsAppend()
        {
            //Build the AssetBundles in this mode
            BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.AppendHashToAssetBundleName, BuildTarget.StandaloneOSX);
        }

        //Creates a new item (Strict Mode) in the new Build Asset Bundles menu
        [MenuItem("BuildDocExamples/Build Asset Bundles/Strict Mode")]
        static void BuildABsStrict()
        {
            //Build the AssetBundles in strict mode (build fails if any errors are detected)
            BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.StrictMode, BuildTarget.StandaloneOSX);
        }

        //Creates a new item (Ignore Type Tree Changes) in the new Build Asset Bundles menu
        [MenuItem("BuildDocExamples/Build Asset Bundles/Ignore Type Tree Changes")]
        static void BuildABsIgnoreTypeTreeChanges()
        {
            //Build the AssetBundles in ignore type tree changes build mode
            BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.IgnoreTypeTreeChanges, BuildTarget.StandaloneOSX);
        }

        //Creates a new item (Dry Run Build) in the new Build Asset Bundles menu
        [MenuItem("BuildDocExamples/Build Asset Bundles/Dry Run Build")]
        static void BuildABsDry()
        {
            //Build the AssetBundles in dry run build mode
            BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.DryRunBuild, BuildTarget.StandaloneOSX);
        }
    }
}
```
