Streamingassets not being copied over in batchmode/CI/jenkins

FMOD stopped working since updating to Unity 2021.3.22f1 (LTS).
The build works locally from the same commit, and version of everything (even when I delete streamingassets beforehand) , but does not work on our build machine.

  • I’ve tried updating Fmod to 2.02.11 and 2.02.13 Unity plugin (and rebuilding banks with studio), neither fixed the issue.
  • I’ve tried using FMOD Settings > Bank Import > Source Type > Fmod studio project as well as multi-platform build, neither fixed the issue.

In my batch build script, I do the following.
This worked before upgrading Unity.

FMODUnity.EventManager.RefreshBanks();
FMODUnity.EventManager.CopyToStreamingAssets(options.target);

before building.
These commands seem to error, and the result is that no files are copied into the streamingassets folder.


ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
08:58:43  ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
08:58:43  ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
08:58:43  FMOD Studio: Encountered Error: ERR_OUTPUT_INIT Error initializing output device.
08:58:43  UnityEngine.StackTraceUtility:ExtractStackTrace () (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/StackTrace.cs:37)
08:58:43  UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
08:58:43  UnityEngine.Logger:Log (UnityEngine.LogType,object)
08:58:43  UnityEngine.Debug:LogError (object)
08:58:43  FMODUnity.RuntimeUtils:DebugLogError (string) (at Assets/Plugins/FMOD/src/RuntimeUtils.cs:585)
08:58:43  FMODUnity.EditorUtils:CheckResult (FMOD.RESULT) (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:44)
08:58:43  FMODUnity.EditorUtils:CreateSystem () (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:534)
08:58:43  FMODUnity.EditorUtils:get_System () (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:597)
08:58:43  FMODUnity.EventManager:UpdateCache () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:179)
08:58:43  FMODUnity.EventManager:RefreshBanks () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:33)
08:58:43  BuildScripts:Build (UnityEditor.BuildTarget,UnityEditor.BuildTargetGroup,string,UnityEditor.BuildPlayerOptions,bool) (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:75)
08:58:43  BuildScripts:BuildMacos () (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:47)
08:58:43  
08:58:43  (Filename: Assets/Plugins/FMOD/src/RuntimeUtils.cs Line: 585)
08:58:43  
08:58:43  FMOD Studio: Encountered Error: ERR_INVALID_HANDLE An invalid object handle was used.
08:58:43  UnityEngine.StackTraceUtility:ExtractStackTrace () (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/StackTrace.cs:37)
08:58:43  UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
08:58:43  UnityEngine.Logger:Log (UnityEngine.LogType,object)
08:58:43  UnityEngine.Debug:LogError (object)
08:58:43  FMODUnity.RuntimeUtils:DebugLogError (string) (at Assets/Plugins/FMOD/src/RuntimeUtils.cs:585)
08:58:43  FMODUnity.EditorUtils:CheckResult (FMOD.RESULT) (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:44)
08:58:43  FMODUnity.EditorUtils:CreateSystem () (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:537)
08:58:43  FMODUnity.EditorUtils:get_System () (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:597)
08:58:43  FMODUnity.EventManager:UpdateCache () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:179)
08:58:43  FMODUnity.EventManager:RefreshBanks () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:33)
08:58:43  BuildScripts:Build (UnityEditor.BuildTarget,UnityEditor.BuildTargetGroup,string,UnityEditor.BuildPlayerOptions,bool) (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:75)
08:58:43  BuildScripts:BuildMacos () (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:47)
08:58:43  
08:58:43  (Filename: Assets/Plugins/FMOD/src/RuntimeUtils.cs Line: 585)
08:58:43  
08:58:43  FMOD Studio: Encountered Error: ERR_INVALID_PARAM An invalid parameter was passed to this function.
08:58:43  UnityEngine.StackTraceUtility:ExtractStackTrace () (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/StackTrace.cs:37)
08:58:43  UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
08:58:43  UnityEngine.Logger:Log (UnityEngine.LogType,object)
08:58:43  UnityEngine.Debug:LogError (object)
08:58:43  FMODUnity.RuntimeUtils:DebugLogError (string) (at Assets/Plugins/FMOD/src/RuntimeUtils.cs:585)
08:58:43  FMODUnity.EditorUtils:CheckResult (FMOD.RESULT) (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:44)
08:58:43  FMODUnity.EditorUtils:CreateSystem () (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:539)
08:58:43  FMODUnity.EditorUtils:get_System () (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:597)
08:58:43  FMODUnity.EventManager:UpdateCache () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:179)
08:58:43  FMODUnity.EventManager:RefreshBanks () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:33)
08:58:43  BuildScripts:Build (UnityEditor.BuildTarget,UnityEditor.BuildTargetGroup,string,UnityEditor.BuildPlayerOptions,bool) (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:75)
08:58:43  BuildScripts:BuildMacos () (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:47)
08:58:43  
08:58:43  (Filename: Assets/Plugins/FMOD/src/RuntimeUtils.cs Line: 585)
08:58:43  
08:58:43  FMOD Studio: Encountered Error: ERR_INVALID_PARAM An invalid parameter was passed to this function.
08:58:43  UnityEngine.StackTraceUtility:ExtractStackTrace () (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/StackTrace.cs:37)
08:58:43  UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
08:58:43  UnityEngine.Logger:Log (UnityEngine.LogType,object)
08:58:43  UnityEngine.Debug:LogError (object)
08:58:43  FMODUnity.RuntimeUtils:DebugLogError (string) (at Assets/Plugins/FMOD/src/RuntimeUtils.cs:585)
08:58:43  FMODUnity.EditorUtils:CheckResult (FMOD.RESULT) (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:44)
08:58:43  FMODUnity.EditorUtils:CreateSystem () (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:540)
08:58:43  FMODUnity.EditorUtils:get_System () (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:597)
08:58:43  FMODUnity.EventManager:UpdateCache () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:179)
08:58:43  FMODUnity.EventManager:RefreshBanks () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:33)
08:58:43  BuildScripts:Build (UnityEditor.BuildTarget,UnityEditor.BuildTargetGroup,string,UnityEditor.BuildPlayerOptions,bool) (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:75)
08:58:43  BuildScripts:BuildMacos () (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:47)
08:58:43  
08:58:43  (Filename: Assets/Plugins/FMOD/src/RuntimeUtils.cs Line: 585)
08:58:43  
08:58:43  FMOD Studio: Encountered Error: ERR_INVALID_HANDLE An invalid object handle was used.
08:58:43  UnityEngine.StackTraceUtility:ExtractStackTrace () (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/StackTrace.cs:37)
08:58:43  UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
08:58:43  UnityEngine.Logger:Log (UnityEngine.LogType,object)
08:58:43  UnityEngine.Debug:LogError (object)
08:58:43  FMODUnity.RuntimeUtils:DebugLogError (string) (at Assets/Plugins/FMOD/src/RuntimeUtils.cs:585)
08:58:43  FMODUnity.EditorUtils:CheckResult (FMOD.RESULT) (at Assets/Plugins/FMOD/src/Editor/EditorUtils.cs:44)
08:58:43  FMODUnity.EventManager:UpdateCache () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:179)
08:58:43  FMODUnity.EventManager:RefreshBanks () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:33)
08:58:43  BuildScripts:Build (UnityEditor.BuildTarget,UnityEditor.BuildTargetGroup,string,UnityEditor.BuildPlayerOptions,bool) (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:75)
08:58:43  BuildScripts:BuildMacos () (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:47)
08:58:43  
08:58:43  (Filename: Assets/Plugins/FMOD/src/RuntimeUtils.cs Line: 585)
08:58:43  
08:58:43  FMOD: Bank refresh failed: WorkFiles/Audio/FMOD/TurboWing/Build/Desktop/Master.strings.bank is not a valid bank.
08:58:43  UnityEngine.StackTraceUtility:ExtractStackTrace () (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/StackTrace.cs:37)
08:58:43  UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
08:58:43  UnityEngine.Logger:LogFormat (UnityEngine.LogType,string,object[])
08:58:43  UnityEngine.Debug:LogErrorFormat (string,object[])
08:58:43  FMODUnity.RuntimeUtils:DebugLogErrorFormat (string,object[]) (at Assets/Plugins/FMOD/src/RuntimeUtils.cs:593)
08:58:43  FMODUnity.BankRefreshWindow:HandleBankRefresh (string) (at Assets/Plugins/FMOD/src/Editor/BankRefreshWindow.cs:81)
08:58:43  FMODUnity.BankRefresher:HandleBankRefresh (string) (at Assets/Plugins/FMOD/src/Editor/BankRefresher.cs:129)
08:58:43  FMODUnity.EventManager:RefreshBanks () (at Assets/Plugins/FMOD/src/Editor/EventManager.cs:44)
08:58:43  BuildScripts:Build (UnityEditor.BuildTarget,UnityEditor.BuildTargetGroup,string,UnityEditor.BuildPlayerOptions,bool) (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:75)
08:58:43  BuildScripts:BuildMacos () (at Assets/_Project/Scripts/Utils/Editor/BuildScripts.cs:47)
08:58:43  
08:58:43  (Filename: Assets/Plugins/FMOD/src/RuntimeUtils.cs Line: 593)

This turned out to be a permissions issue, where my jenkins user on the Ubuntu VM did not have access to audio, after an upgrade of Ubuntu.

The following set of commands (And possibly some other ones to reset the pulseaudio driver) fixed it, and Fmod no longer errors on initialization when refreshing banks.

the first line adds the user jenkins to the group audio
the other commands just reset the core audio stuff of a ubuntu install.

sudo usermod -a -G audio jenkins
sudo apt-get remove --purge alsa-base
sudo apt-get remove --purge pulseaudio
sudo apt-get install alsa-base
sudo apt-get install pulseaudio
sudo alsa force-reload
sudo reboot