amazon-chime-sdk-js icon indicating copy to clipboard operation
amazon-chime-sdk-js copied to clipboard

Inconsistent MeetingSessionStatusCode for attendee that was deleted from the meeting

Open stanggt3 opened this issue 4 years ago • 3 comments

1612375807087.log 1612375970535.log

Meeting and attendee IDs: Meeting ID: f5baf188-348a-47fb-a136-6aa6a1c54605 28efbe45-a0a4-3082-8333-01a7aa41cbc6 (the attendee that is being deleted from the meeting) 02c70647-4885-3195-7301-44899d7dd56a (the other attendee that stays in the meeting)

Timeline Kicked user from meeting immediately after the user joined

Describe the bug An attendee joins the meeting. Use the DeleteAttendee call to delete that attendee from the meeting. So far I have seen 3 different session status codes for the MeetingSessionStatusCode when the meeting ends on the deleted users side.

  1. 6 - AudioCallEnded
  2. 12 - SignalingBadRequest
  3. 22 - TURNCredentialsForbidden (this is the expected behavior per the docs)

This is causing inconsistent behaviors in the UI

Logs attached

Platform

  • OS: WIn
  • Browser: Chrome
  • Browser Version: 89
  • Amazon Chime SDK GitHub Commit: 1034

stanggt3 avatar Feb 03 '21 21:02 stanggt3

Before version 1.19.0, Amazon Chime SDK for JavaScript made an HTTP request to retrieve TURN credentials. Since 1.19.0, SDK uses a signaling connection (WebSocket) to get TURN credentials to improve startup time. Only if failed, SDK makes an HTTP request as a fallback.

In 1.19.0 and above, the attendee should receive the SignalingBadRequest status code when you delete this attendee using the DeleteAttendee API in your server application.

But I could reproduce the same issue that the attendee receives MeetingEnded (status code 6) in the following repro case.

Repro steps (5~10%)

  1. Use the CreateAttendee with the external user ID test to create Attendee A.
  2. Attendee A joins the meeting in a browser.
  3. Use the DeleteAttendee API to delete Attendee A.
  4. Attendee A is removed from the meeting with SignalingBadRequest as expected.
  5. Use the CreateAttendee with the same external user ID test to create Attendee A again.
  6. Use the DeleteAttendee API to delete Attendee A.
  7. Now, Attendee A receives MeetingEnded even though the meeting is still running.

Action items

  • Investigate the inconsistent status issue for the deleted attendee.
  • Improve the document about SignalingBadRequest and TURNCredentialsForbidden.

simmkyu avatar Feb 05 '21 03:02 simmkyu

Sorry for the late response. I am afraid I am not the right person for this task. The AudioAttendeeRemoved that I have been working on is a new feature and it has not been enabled in JS SDK. It does not affect the existing behavior. Someone from JS SDK must take a look at this issue.

achronop avatar Sep 22 '21 06:09 achronop

I will kindly assign it back to you @devalevenkatesh in order to trigger a new re-assignment of the ticket. However, I will be watching the issue and I will be available for further explanations if needed. Thanks.

achronop avatar Sep 22 '21 06:09 achronop