Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Bug Unexplained Build Error, started in last 24 hours

Discussion in 'Unity Build Automation' started by alan-lawrance, Jun 9, 2022.

  1. alan-lawrance

    alan-lawrance

    Joined:
    Feb 1, 2013
    Posts:
    360
    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 ()
     
  2. StartStart

    StartStart

    Joined:
    Jan 2, 2013
    Posts:
    150
    Try hit clean build.
     
  3. alan-lawrance

    alan-lawrance

    Joined:
    Feb 1, 2013
    Posts:
    360
    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:

    Code (CSharp):
    1. 3935: [Unity] UnityEditor.BuildPipeline:BuildPlayerInternal (string[],string,string,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,UnityEditor.BuildOptions,string[])
    2. 3936: [Unity] UnityEditor.BuildPipeline:BuildPlayer (string[],string,string,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,UnityEditor.BuildOptions,string[])
    3. 3937: [Unity] UnityEditor.BuildPipeline:BuildPlayer (UnityEditor.BuildPlayerOptions)
    4. 3938: [Unity] UnityEditor.BuildPipeline:BuildPlayer (string[],string,UnityEditor.BuildTarget,UnityEditor.BuildOptions)
    5. 3939: [Unity] UnityEditor.CloudBuild.Builder:BuildPlayerDefault (UnityEditor.BuildPlayerOptions)
    6. 3940: [Unity] UnityEditor.CloudBuild.Builder:BuildPlayer (UnityEditor.BuildPlayerOptions)
    7. 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).
     
    Last edited: Jun 19, 2022
  4. alan-lawrance

    alan-lawrance

    Joined:
    Feb 1, 2013
    Posts:
    360
    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:

    Code (CSharp):
    1.  
    2. AddressableAssetSettings.CleanPlayerContent();
    3. AddressableAssetSettings.BuildPlayerContent();
    4.  
     
  5. alan-lawrance

    alan-lawrance

    Joined:
    Feb 1, 2013
    Posts:
    360
    So manually building the addressables in the pre-export step, rather than using the "Build Addressables" option in UCB fixes the build issues.