Unity infinite hold on enter Play Mode (using Timeline)


We use Fmod track in Timeline and it freeze Unity Editor when entering play mode.
Let me explain with more details:

Unity version 2020.1.17f1
Fmod version 2.01.07
Timeline 1.2.17

  1. Open Timeline window with FMOD track and FMOD clip on it
  2. Enforce creating new RuntimeManager (I move preview line to do this) in Editor Mode
  3. Enter Play mode
  4. Exit Play mode
  5. Go to Timeline window again and enforce creating new RuntimeManager
  6. Enter Play Mode
  7. Infite hold is reached

I made some investigation and added some logs which lead me to the method
FMOD.Memory.GetStats(out temp1, out temp2);

FMODUnity.RuntimeUtils:EnforceLibraryOrder() (at Assets/Plugins/FMOD/src/Runtime/RuntimeUtils.cs:365)
FMODUnity.RuntimeManager:get_Instance() (at Assets/Plugins/FMOD/src/Runtime/RuntimeManager.cs:100)
FMODUnity.RuntimeManager:PathToGUID(String) (at Assets/Plugins/FMOD/src/Runtime/RuntimeManager.cs:1041)
FMODUnity.RuntimeManager:CreateInstance(String) (at Assets/Plugins/FMOD/src/Runtime/RuntimeManager.cs:1054)
AudioSourceContainerFMOD:.ctor(String, Transform, Rigidbody2D) (at Assets/Scripts/Core/Audio/FMOD/AuduioSourceContainerFMOD.cs:44)
AudioFMOD:Create(String, Boolean, Transform, Rigidbody2D) (at Assets/Scripts/Core/Audio/FMOD/AudioFMOD.cs:103)
AudioController:CreateInternal(String, Boolean, Transform, Rigidbody2D) (at Assets/Scripts/Core/Audio/AudioController.cs:144)
AudioController:Create(String, Boolean, Transform, Rigidbody2D) (at Assets/Scripts/Core/Audio/AudioController.cs:98)
ThrowableItem:Awake() (at Assets/Scripts/World/PhysicalObject/ThrowableItem.cs:55)

Looks like main thread is blocked by this method.
I also found that this method has parameter = blocking, which is always true.
I tried to make it false, and infinite loop has gone.

But such solution doesn’t look reliable.
Could yu provide more reliable solution?

I was not able to reproduce your issue, but I did skip steps 2 and 6 because I’m not sure what you mean here:

Can you please clarify what you mean by “Enforce creating new RuntimeManager”?