Meeting SDK Type: Linux-x86_64 and Version: 7.1.0.4100
Description
Re-joining and Re-start a meeting failed when the current instance had already joined/started and left a meeting.
Error?
After getting MEETING_STATUS_CONNECTING in onMeetingStatusChanged(), I got MEETING_STATUS_DISCONNECTING and then MEETING_STATUS_FAILED with iResult MEETING_FAIL_MMR_ERR. I have to restart my app to make it work again. But before upgrading it from 6.3.5 to 7.1.0, it was working fine.
Troubleshooting Routes
There is no errors when start/join at the first time and no error when leave the meeting and cleanup successfully
Could you let me know what does this error MEETING_FAIL_MMR_ERR mean? What procedure could I miss? Thank you!
@Ross_Video it would be super helpful you can capture the SDK logs and share it with me.
Thanks for reply, Chun! Sure, please check logs here: Logs - Google Drive
@Ross_Video , thanks opening a ticket internally, I’ll update you again next week. Ping me if you don’t hear from me
ZSEE-207699
Hi, @chunsiong.zoom , do you have any update by any chance?
@Ross_Video ,
We are still investigating this, meanwhile there is a workaround provided for 7.1.0.
Do not call CleanUPSDK after leaving the meeting. Here’s the expected flow for this workaround:
-
InitSDK
-
Join meeting
-
Leave
-
Join meeting
-
Leave
…
Finally: Call CleanUPSDK when the client app exits.
Thank you, @chunsiong.zoom . We tried the workaround today but met some problems as well 
We already follow that InitSDK / CleanUPSDK lifetime:
- Call
InitSDK() once when the process starts (or on first meeting).
- Join meeting → works.
- Leave meeting → works.
- Join a second meeting in the same process without calling
CleanUPSDK().
- Call
CleanUPSDK() only when the client app exits.
Between leave and the second join, we destroy and recreate the services (DestroyAuthService / DestroyMeetingService, then CreateAuthService / CreateMeetingService again). We do not call CleanUPSDK() between meetings.
On step 4 we tried two approaches:
A. Call SDKAuth() again before the second join
SDKAuth() is invoked.
onAuthenticationReturn() is never called.
- So we never proceed to
Join().
B. Skip the second SDKAuth() and call Join() directly (assuming auth from the first meeting is still valid)
onMeetingStatusChanged() is called.
- We only receive
MEETING_STATUS_CONNECTING.
- We never get a later status such as
MEETING_STATUS_INMEETING, MEETING_STATUS_FAILED, or MEETING_STATUS_ENDED.
Questions for you:
- After leave, should we keep the same
IAuthService / IMeetingService instances for the next join, or is destroy/recreate supported?
- For the second join in the same process, should we call
SDKAuth() again, or only Join()?
- If
SDKAuth() should be called again, why would onAuthenticationReturn() not fire on Linux after the first successful auth?
Many thanks!
@Ross_Video this will be fixed in the upcoming release. Meanwhile if the workaround doesn’t seem ideal, it might make sense to use a last known good version such as 6.3.5 while waiting for the upcoming release dix.
Got it, thank you so much! Looking forward to the upcoming release!