Unexplained Build Error, started in last 24 hours

Need some help trying to determine source of this error. Doesn’t appear to be due to any local changes, which were minimal (just some assets, nothing with project settings) between a working and failing build.

3926: [Unity] ERROR: Error building Player: ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
3927: [Unity] Parameter name: index
3928: [Unity] UnityEngine.StackTraceUtility:ExtractStackTrace ()
3929: [Unity] UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[ ])
3930: [Unity] UnityEngine.Logger:Log (UnityEngine.LogType,object)
3931: [Unity] UnityEngine.Debug:Log (object)
3932: [Unity] UnityEditor.CloudBuild.BuildLogger:Log (string)
3933: [Unity] UnityEditor.CloudBuild.BuildLogger:HighlightUnityErrors (string,string,UnityEngine.LogType)
3934: [Unity] UnityEngine.Application:CallLogCallback (string,string,UnityEngine.LogType,bool)
3935: [Unity] UnityEditor.BuildPipeline:BuildPlayerInternal (string[ ],string,string,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,UnityEditor.BuildOptions,string[ ])
3936: [Unity] UnityEditor.BuildPipeline:BuildPlayer (string[ ],string,string,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,UnityEditor.BuildOptions,string[ ])
3937: [Unity] UnityEditor.BuildPipeline:BuildPlayer (UnityEditor.BuildPlayerOptions)
3938: [Unity] UnityEditor.BuildPipeline:BuildPlayer (string[ ],string,UnityEditor.BuildTarget,UnityEditor.BuildOptions)
3939: [Unity] UnityEditor.CloudBuild.Builder:BuildPlayerDefault (UnityEditor.BuildPlayerOptions)
3940: [Unity] UnityEditor.CloudBuild.Builder:BuildPlayer (UnityEditor.BuildPlayerOptions)
3941: [Unity] UnityEditor.CloudBuild.Builder:Build ()

Try hit clean build.

Same results with clean build. Oddly we’re seeing builds pass occasionally, but seem to be failing with this error 80% of the time.

The callstack suggests the problem is with data inside UnityEditor.BuildPlayerOptions, but it looks like this is generated by UCB:

3935: [Unity] UnityEditor.BuildPipeline:BuildPlayerInternal (string[],string,string,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,UnityEditor.BuildOptions,string[])
3936: [Unity] UnityEditor.BuildPipeline:BuildPlayer (string[],string,string,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,UnityEditor.BuildOptions,string[])
3937: [Unity] UnityEditor.BuildPipeline:BuildPlayer (UnityEditor.BuildPlayerOptions)
3938: [Unity] UnityEditor.BuildPipeline:BuildPlayer (string[],string,UnityEditor.BuildTarget,UnityEditor.BuildOptions)
3939: [Unity] UnityEditor.CloudBuild.Builder:BuildPlayerDefault (UnityEditor.BuildPlayerOptions)
3940: [Unity] UnityEditor.CloudBuild.Builder:BuildPlayer (UnityEditor.BuildPlayerOptions)
3941: [Unity] UnityEditor.CloudBuild.Builder:Build ()

Doing local build with BuildPipeline.BuildPlayer() works fine.

Version being used for UCB: Unity 2020.3.32f1 (This was same version being used when builds were working consistently).

I’ve determined the problem is related to building Addressables. If I set “Build Addressables” to No, the builds pass consistently. Of course we need addressables built, so this isn’t a solution.

One option would be to build the addressables manually in a pre-build script, like:

AddressableAssetSettings.CleanPlayerContent();
AddressableAssetSettings.BuildPlayerContent();

So manually building the addressables in the pre-export step, rather than using the “Build Addressables” option in UCB fixes the build issues.