New Sessions Expire during Device Setup
See original GitHub issueMeeting and attendee IDs: N/A
Timeline Outline the main actions the user performed and when:
- First and only user on meeting loads app that receives meeting and attendee info
- User waits more than five minutes in the device selection.
- User tries to join the Meeting after this wait
Since the user took more than 5 minutes without adding audio to the newly created meeting, it expires (by default Chime rules) and there’s a WebSocket error and a loop of constant errors afterwards.
Describe the bug
There doesn’t seem to be an event thrown for this scenario on AudioVideoObserver
to handle this and also the SDK doesn’t provide way to avoid the five minute expiration in this scenario (which is quite common, as many Meeting organizers tend to leave setup screens open minutes before starting).
Error Log (on Meeting start after user waited more than five minutes in device selection)
2020-05-20T20:24:58.478Z [INFO] SDK - API/DefaultAudioVideoFacade/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/stopVideoPreviewForVideoInput "video-preview"
ConsoleLogger.ts:69 2020-05-20T20:24:58.478Z [INFO] SDK - video send has ideal max bandwidth 1400 kbps
ConsoleLogger.ts:69 2020-05-20T20:24:58.479Z [INFO] SDK - API/DefaultAudioVideoFacade/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/chooseVideoInputDevice null
ConsoleLogger.ts:69 2020-05-20T20:24:58.479Z [INFO] SDK - serial group task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5 completed subtask AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/MonitorTask
ConsoleLogger.ts:69 2020-05-20T20:24:58.479Z [INFO] SDK - serial group task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5 running subtask AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/ReceiveAudioInputTask
ConsoleLogger.ts:69 2020-05-20T20:24:58.479Z [INFO] SDK - running task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/ReceiveAudioInputTask
ConsoleLogger.ts:69 2020-05-20T20:24:58.480Z [INFO] SDK - checking whether existing audio device can be reused
ConsoleLogger.ts:69 2020-05-20T20:24:58.480Z [INFO] SDK - reusing existing audio device
ConsoleLogger.ts:69 2020-05-20T20:24:58.481Z [INFO] SDK - API/DefaultDeviceController/chooseVideoInputDevice null -> "PermissionGrantedByBrowser"
ConsoleLogger.ts:69 2020-05-20T20:24:58.481Z [INFO] SDK - using audio device label=Default - MacBook Pro Microphone (Built-in) id=9c190892-4ed7-4df6-9046-8254993aae7f
ConsoleLogger.ts:69 2020-05-20T20:24:58.481Z [INFO] SDK - AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/ReceiveAudioInputTask took 2 ms
ConsoleLogger.ts:69 2020-05-20T20:24:58.482Z [INFO] SDK - serial group task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5 completed subtask AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/ReceiveAudioInputTask
ConsoleLogger.ts:69 2020-05-20T20:24:58.482Z [INFO] SDK - serial group task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5 running subtask AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms
ConsoleLogger.ts:69 2020-05-20T20:24:58.482Z [INFO] SDK - running task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms
ConsoleLogger.ts:69 2020-05-20T20:24:58.482Z [INFO] SDK - running task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media
ConsoleLogger.ts:69 2020-05-20T20:24:58.482Z [INFO] SDK - serial group task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media running subtask AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup
ConsoleLogger.ts:69 2020-05-20T20:24:58.483Z [INFO] SDK - running task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup
ConsoleLogger.ts:69 2020-05-20T20:24:58.483Z [INFO] SDK - parallel group task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup running subtask AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup/ReceiveTURNCredentialsTask
ConsoleLogger.ts:69 2020-05-20T20:24:58.484Z [INFO] SDK - running task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup/ReceiveTURNCredentialsTask
ConsoleLogger.ts:69 2020-05-20T20:24:58.484Z [INFO] SDK - requesting TURN credentials from https://ccp.cp.ue1.app.chime.aws/v2/turn_sessions
ConsoleLogger.ts:69 2020-05-20T20:24:58.486Z [INFO] SDK - parallel group task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup running subtask AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup/Signaling
ConsoleLogger.ts:69 2020-05-20T20:24:58.487Z [INFO] SDK - running task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup/Signaling
ConsoleLogger.ts:69 2020-05-20T20:24:58.487Z [INFO] SDK - serial group task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup/Signaling running subtask AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup/Signaling/OpenSignalingConnectionTask
ConsoleLogger.ts:69 2020-05-20T20:24:58.487Z [INFO] SDK - running task AudioVideoStart/45d90abf-7532-4d34-9df4-180111b86338/492f18d8-fe05-47fc-983a-b8ba5a9d07a5/Timeout15000ms/Media/Setup/Signaling/OpenSignalingConnectionTask
ConsoleLogger.ts:69 2020-05-20T20:24:58.488Z [INFO] SDK - adding connection request to queue: wss://signal.m3.ue1.app.chime.aws/control/45d90abf-7532-4d34-9df4-180111b86338?X-Chime-Control-Protocol-Version=3
ConsoleLogger.ts:69 2020-05-20T20:24:58.488Z [INFO] SDK - no existing connection needs closing
ConsoleLogger.ts:69 2020-05-20T20:24:58.489Z [INFO] SDK - opening connection to wss://signal.m3.ue1.app.chime.aws/control/45d90abf-7532-4d34-9df4-180111b86338?X-Chime-Control-Protocol-Version=3
ConsoleLogger.ts:69 2020-05-20T20:24:58.490Z [INFO] SDK - notifying event: WebSocketConnecting
meetingV2.ts:1559 [DEMO] session connecting. reconnecting: false
DefaultWebSocketAdapter.ts:12 WebSocket connection to 'wss://signal.m3.ue1.app.chime.aws/control/45d90abf-7532-4d34-9df4-180111b86338?X-Chime-Control-Protocol-Version=3&X-Amzn-Version=1.6.9&X-Amzn-User-Agent=chrome-81' failed: Connection closed before receiving a handshake response
...
...
...
Can be replicated on Browser Demo by just waiting five minutes in the device selection screen and then hitting join, on a new meeting.
Platform
- OS: N/A
- Browser: N/A
- Browser Version: N/A
- Amazon Chime SDK GitHub Commit:
3a10d4a15c4678ad0f70b4450feba476a35c61a0
Issue Analytics
- State:
- Created 3 years ago
- Comments:14 (3 by maintainers)
Closing this issue as the 5 minute auto-end if no attendee joins is an intentional limitation of the SDK designed to optimize backend resources towards active meetings and prevent unintentional resource consumption leading to billing. The main takeaway here is to defer creating the meeting until just before the attendee needs to join (e.g. call
meetingSession.audioVideo.start()
). The 5-minute grace period is intended to cover delays between the client app and the server app and brief losses of network connectivity. It is not intended that this time be used to wait on user input which could take arbitrarily long or be canceled (such as dedicated device setup screens).That being said, we have taken the feedback about potentially being able to adjust the auto-end policy to make it more flexible.
I believe this is related to issues addressed recently by #396 and #415