Azure-Samples / communication-services-android-quickstarts

Sample code for Azure Communication Services Android quickstarts
MIT License
6 stars 24 forks source link

Cannot createAgent in sdk com.azure.android:azure-communication-calling:2.9.0 #58

Open huyhoangk50 opened 2 months ago

huyhoangk50 commented 2 months ago

Please provide us with the following information:

This issue is for a: (mark with an x)

- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

Open join-call-to-teams-meeting source code using android-studio Generate my userToken and replace it in the source code Change sdk in gradle file to implementation 'com.azure.android:azure-communication-calling:2.9.0' Build and Run the app on android device

Any log messages given by the failure

2024-06-24 17:52:22.061 27651-27675 System.err              com.contoso.acsquickstart            W  java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Unknown error.
2024-06-24 17:52:22.062 27651-27675 System.err              com.contoso.acsquickstart            W      at java9.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:399)
2024-06-24 17:52:22.062 27651-27675 System.err              com.contoso.acsquickstart            W      at java9.util.concurrent.CompletableFuture.get(CompletableFuture.java:2079)
2024-06-24 17:52:22.062 27651-27675 System.err              com.contoso.acsquickstart            W      at com.azure.android.communication.calling.CallClient$5.get(CallClient.java:287)
2024-06-24 17:52:22.062 27651-27675 System.err              com.contoso.acsquickstart            W      at com.azure.android.communication.calling.CallClient$5.get(CallClient.java:255)
2024-06-24 17:52:22.062 27651-27675 System.err              com.contoso.acsquickstart            W      at java9.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1774)
2024-06-24 17:52:22.062 27651-27675 System.err              com.contoso.acsquickstart            W      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2024-06-24 17:52:22.062 27651-27675 System.err              com.contoso.acsquickstart            W      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2024-06-24 17:52:22.062 27651-27675 System.err              com.contoso.acsquickstart            W      at java.lang.Thread.run(Thread.java:920)
2024-06-24 17:52:22.063 27651-27675 System.err              com.contoso.acsquickstart            W  Caused by: java.lang.IllegalArgumentException: Unknown error.
2024-06-24 17:52:22.063 27651-27675 System.err              com.contoso.acsquickstart            W      at com.azure.android.communication.calling.NativeLibraryHelpers.checkStatus(NativeLibraryHelpers.java:250)
2024-06-24 17:52:22.063 27651-27675 System.err              com.contoso.acsquickstart            W      at com.azure.android.communication.calling.CallClient$1.get(CallClient.java:155)
2024-06-24 17:52:22.063 27651-27675 System.err              com.contoso.acsquickstart            W      at com.azure.android.communication.calling.CallClient$1.get(CallClient.java:148)
2024-06-24 17:52:22.063 27651-27675 System.err              com.contoso.acsquickstart            W      ... 4 more

Expected/desired behavior

Can create agent

OS and Version?

Host machine: ubuntu:18.04 Android-studio: 2023.2.1 Patch 1 Device: android-11

Versions

SDK: 2.9.0


Thanks! We'll be in touch soon.

oleksandr-hulak commented 1 month ago

Also having this issue, starting from v2.8.0. The issue is not reproducible on v2.7.0. The stack trace from v2.8.0 is

java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.azure.android.communication.calling.CallingCommunicationException: Invalid Token Provider
     at java9.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:399)
     at java9.util.concurrent.CompletableFuture.get(CompletableFuture.java:2079)
     at com.example.msteams.call.data.AzureCallAgentProvider$getOrCreateAgent$2.invokeSuspend(AzureCallAgentProvider.kt:52)
     at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
     at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
     at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
     Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@c7f3c75, Dispatchers.Main.immediate]
    Caused by: java.util.concurrent.ExecutionException: com.azure.android.communication.calling.CallingCommunicationException: Invalid Token Provider
     at java9.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:399)
     at java9.util.concurrent.CompletableFuture.get(CompletableFuture.java:2079)
     at com.azure.android.communication.calling.CallClient$5.get(CallClient.java:275)
     at com.azure.android.communication.calling.CallClient$5.get(CallClient.java:254)
     at java9.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1774)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
     at java.lang.Thread.run(Thread.java:764)
    Caused by: com.azure.android.communication.calling.CallingCommunicationException: Invalid Token Provider
     at com.azure.android.communication.calling.NativeLibraryHelpers.checkStatus(NativeLibraryHelpers.java:390)
     at com.azure.android.communication.calling.CallClient$1.get(CallClient.java:155)
     at com.azure.android.communication.calling.CallClient$1.get(CallClient.java:148)
     at java9.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1774)

It fails when calling callClient.createCallAgent(applicationContext, CommunicationTokenCredential(token)), and on v2.7.0 it works just fine.

oleksandr-hulak commented 1 month ago

@huyhoangk50 I think I figured it out - they now have a separate createTeamsCallAgent method for custom Microsoft Teams clients. Yeah, they don't provide a nice error message, or any tutorial on migrating from v2.7.0, and the documentation at https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/voice-video-calling/get-started-call-to-teams-user?pivots=platform-android is also outdated, using the old createCallAgent method 😞