Bug with addressables: The type initializer for 'UnityEditor.Build.Pipeline.Utilities.ScriptableBuildPipeline' threw an exception

Recently I had a big file corruption issue with my project.
I was in 2023.2 and upgrading to Unity 6.12 solved most of my issues.

I don’t know if it’s related to my previous issue or if it’s a bug with unity 6.12 but when I try to build my addressable assets I get theses errors:

The type initializer for 'UnityEditor.Build.Pipeline.Utilities.ScriptableBuildPipeline' threw an exception.
UnityEditor.GenericMenu:CatchMenu (object,string[],int)
The type initializer for 'UnityEditor.Build.Pipeline.Utilities.ScriptableBuildPipeline' threw an exception.
UnityEditor.GenericMenu:CatchMenu (object,string[],int)
Addressable content build failure (duration : 0:00:00)
UnityEditor.GenericMenu:CatchMenu (object,string[],int)

The errors aren’t very explicit so I did some digging.

Here’s the stack trace for the first error:

  at UnityEditor.Build.Pipeline.Utilities.HashingMethods.GetHashAlgorithm () [0x00001] in .\Library\PackageCache\com.unity.scriptablebuildpipeline\Editor\Utilities\HashingMethods.cs:291 
  at UnityEditor.Build.Pipeline.Utilities.HashingMethods.Calculate (System.Object[] objects) [0x00011] in .\Library\PackageCache\com.unity.scriptablebuildpipeline\Editor\Utilities\HashingMethods.cs:388 
  at UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode.CalculateGroupHash (UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema+BundleInternalIdMode mode, UnityEditor.AddressableAssets.Settings.AddressableAssetGroup assetGroup, System.Collections.Generic.IEnumerable`1[T] entries) [0x00028] in .\Library\PackageCache\com.unity.addressables\Editor\Build\DataBuilders\BuildScriptPackedMode.cs:1131 
  at UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode.PrepGroupBundlePacking (UnityEditor.AddressableAssets.Settings.AddressableAssetGroup assetGroup, System.Collections.Generic.List`1[T] bundleInputDefs, UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema schema, System.Func`2[T,TResult] entryFilter) [0x000ab] in .\Library\PackageCache\com.unity.addressables\Editor\Build\DataBuilders\BuildScriptPackedMode.cs:1168 
  at UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode.ProcessBundledAssetSchema (UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema schema, UnityEditor.AddressableAssets.Settings.AddressableAssetGroup assetGroup, UnityEditor.AddressableAssets.Build.DataBuilders.AddressableAssetsBuildContext aaContext) [0x001b0] in .\Library\PackageCache\com.unity.addressables\Editor\Build\DataBuilders\BuildScriptPackedMode.cs:1083 
  at UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode.ProcessGroupSchema (UnityEditor.AddressableAssets.Settings.AddressableAssetGroupSchema schema, UnityEditor.AddressableAssets.Settings.AddressableAssetGroup assetGroup, UnityEditor.AddressableAssets.Build.DataBuilders.AddressableAssetsBuildContext aaContext) [0x00013] in .\Library\PackageCache\com.unity.addressables\Editor\Build\DataBuilders\BuildScriptPackedMode.cs:1031 
  at UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode.ProcessGroup (UnityEditor.AddressableAssets.Settings.AddressableAssetGroup assetGroup, UnityEditor.AddressableAssets.Build.DataBuilders.AddressableAssetsBuildContext aaContext) [0x00061] in .\Library\PackageCache\com.unity.addressables\Editor\Build\DataBuilders\BuildScriptPackedMode.cs:1010 
  at UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptBase.ProcessAllGroups (UnityEditor.AddressableAssets.Build.DataBuilders.AddressableAssetsBuildContext aaContext) [0x000ae] in .\Library\PackageCache\com.unity.addressables\Editor\Build\DataBuilders\BuildScriptBase.cs:174 
  at UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode.BuildDataImplementation[TResult] (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput builderInput) [0x00040] in .\Library\PackageCache\com.unity.addressables\Editor\Build\DataBuilders\BuildScriptPackedMode.cs:126 
  at UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptBase.BuildData[TResult] (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput builderInput) [0x000a5] in .\Library\PackageCache\com.unity.addressables\Editor\Build\DataBuilders\BuildScriptBase.cs:103 

With the inner exception:

JSON parse error: The document is empty.
  at (wrapper managed-to-native) UnityEditor.EditorJsonUtility.FromJsonOverwriteInternal_Injected(UnityEngine.Bindings.ManagedSpanWrapper&,object)
  at UnityEditor.EditorJsonUtility.FromJsonOverwriteInternal (System.String json, System.Object objectToOverwrite) [0x00048] in <ea5c8dc3598c4a5eb7b400757d86957d>:0 
  at UnityEditor.EditorJsonUtility.FromJsonOverwrite (System.String json, System.Object objectToOverwrite) [0x0003b] in <ea5c8dc3598c4a5eb7b400757d86957d>:0 
  at UnityEditor.Build.Pipeline.Utilities.ScriptableBuildPipeline.LoadSettings () [0x00026] in .\Library\PackageCache\com.unity.scriptablebuildpipeline\Editor\Utilities\Preferences.cs:199 
  at UnityEditor.Build.Pipeline.Utilities.ScriptableBuildPipeline..cctor () [0x0000b] in .\Library\PackageCache\com.unity.scriptablebuildpipeline\Editor\Utilities\Preferences.cs:211 

This is deeper I could go with the debugger:

The second error is logged at AddressableAssets.Settings.AddressableAssetSettings.BuildPlayerContentImpl():3039 but I couldn’t get more infos.

Tell me if you have any idea of what this issue is and how I could solve it.

1 Like

I still have this issue with 2.3.1.

I reported the bug back in august but nothing happened after it was confirmed.
Issue tracker link is : ADDR-3749

I don’t want to ping any devs, I know how annoying it can be, but if any of you sees this please take a look into it, It’s driving me insane.

Fixed!
After a lot of debugging I managed to find the issue.
The file ProjectSettings/ScriptableBuildPipeline.json was still corrupted.

I wish Unity told me what file was causing the issue, the error I had was not really helping.

If anyone has the same problem, you can just delete the file and reinstall the ScriptableBuildPipeline package.