iOS error - can't connect

We started getting this error on iOS after rebuilding our client with the latest XCode and macOS.

2022-06-22 15:37:21.378343-0600 MyApp[15502:12848807] [aurioc] AURemoteIO.cpp:1936:Run: AURemoteIO@0x130bcc040: IOThread exiting with error 0x10004006
2022-06-22 15:37:21.410857-0600 MyApp[15502:12848796] [aurioc] AURemoteIO.cpp:1598:Start: AUIOClient_StartIO failed (-66637)
Vivox disconnected from channel 0a-f8-87-73-6b-1e721528228positional
MyApp.VivoxVoiceManager:SourceOnChannelPropertyChanged(Object, PropertyChangedEventArgs)
VivoxUnity.VxClient:InstanceOnMainLoopRun(Boolean&)
MessagePump:RunOnce()
MessagePump:RunUntil(LoopDone)
MyApp.VivoxVoiceManager:Update()

I assume I need to update our vivox libraries.

We have been using Vivox for probably 4 years. We have not updated the libraries in a while. In the meantime, Vivox has been brought in to Unity directly through packages / services. We don’t use other “services”. I am not sure how to go through the transition of updating our libraries to the packages/services model. I have removed the Vivox folder we had in our project, and added the package line in our manifest.json file. That seemed to properly add Vivox to our project, and I had to fix some code that looks like was deprecated.

I was doing this because iOS had stopped working, after building with the latest XCode, and was getting the error above.

But now that I’ve updated to the package path, I can’t even login to the vivox service I don’t think in our code.

I’m now getting this error on Android, the first platform I’ve tried, this is happening in the BeginConnect callback, which happens after logging in:

2022-06-27 15:09:48.331 7836-7857/? E/Unity: <Login>b__0: vx_req_account_anonymous_login_t failed: System.InvalidOperationException: LoginSession: Invalid State - must be logged in to perform this operation.
      at VivoxUnity.Private.LoginSession.AssertLoggedIn () [0x00000] in <00000000000000000000000000000000>:0
      at VivoxUnity.Private.LoginSession.GetChannelSession (VivoxUnity.ChannelId channelId) [0x00000] in <00000000000000000000000000000000>:0
      at MyApp.VivoxVoiceManager.CreatePositionalChannel (System.String channelName, VivoxUnity.IChannelSession& channelSession) [0x00000] in <00000000000000000000000000000000>:0
      at MyApp.VivoxVoiceManager+<>c__DisplayClass29_0.<BeginBuildClient>b__0 (System.IAsyncResult ar) [0x00000] in <00000000000000000000000000000000>:0
      at VivoxUnity.AsyncNoResult.SetComplete () [0x00000] in <00000000000000000000000000000000>:0
      at VivoxUnity.Private.LoginSession+<>c__DisplayClass97_0.<Login>b__0 (System.IAsyncResult result) [0x00000] in <00000000000000000000000000000000>:0
      at VivoxUnity.AsyncResult`1[T]
2022-06-27 15:09:48.332 7836-7857/? E/Unity: Received error while processing Vivox commands: System.InvalidOperationException: Operation is not valid due to the current state of the object.
      at VivoxUnity.AsyncNoResult.SetComplete (System.Exception exception) [0x00000] in <00000000000000000000000000000000>:0
      at VivoxUnity.Private.LoginSession+<>c__DisplayClass97_0.<Login>b__0 (System.IAsyncResult result) [0x00000] in <00000000000000000000000000000000>:0
      at VivoxUnity.AsyncResult`1[T].SetComplete (T result) [0x00000] in <00000000000000000000000000000000>:0
      at VivoxUnity.VxClient.InstanceOnMainLoopRun (System.Boolean& didWork) [0x00000] in <00000000000000000000000000000000>:0
      at MessagePump.RunOnce () [0x00000] in <00000000000000000000000000000000>:0
      at MessagePump.RunUntil (LoopDone done) [0x00000] in <00000000000000000000000000000000>:0
      at MyApp.VivoxVoiceManager.Update () [0x00000] in <00000000000000000000000000000000>:0
    MyApp.VivoxVoiceManager:Update()

Not sure how to get passed this. I think it has something to do with the Unity “services”. We don’t have access now to vivox?

Okay, I got passed the anonymous_login_t failed error by signing up for the services in Unity. I’m logging in and successful. However, upon testing, it appears that the 3D positional channel does not have any falloff distance any more. Is this a known issue? Or perhaps things have changed since 4 years ago when we setup positional channels…

I am glad you fixe your connection issue, but sorry to hear you are experiencing issues with positional channels. Would you be able to provide the following to help me investigate the cause of your issue?

  • A snippet of your joining positional channel code
  • Your Vivox version
  • Your Unity version
  • Platform Types (Android, iOS, PC, etc)

NOTE: Please ensure your issuer and key are NOT present in your snippet!

Okay, I figured it out.

The new functions to SetTransmissionMode I had set to All when joining the positional channel. Since we join both a positional and global channel (even though we join the global one muted), and we join the global channel last, it was just broadcasting to all channels, I guess. Using the “Single” transmission mode fixed it so that when the positional channel is broadcasting it is using the audio falloff.

Thanks for reaching out.

I am glad you were able to figure out what was going on! Thanks so much for posting your solution. In this case, I’ll close out this forum post. Feel free to post a new forum thread if you have any other questions and we’ll be happy to help!