question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

New Sessions Expire during Device Setup

See original GitHub issue

Meeting 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:closed
  • Created 3 years ago
  • Comments:14 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
andibrae-amzncommented, Jun 2, 2020

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.

0reactions
andibrae-amzncommented, May 28, 2020

@aburnson that’s precisely the issue. On the first five minute expiration, the last event that gets triggered is audioVideoDidStartConnecting, but audioVideoDidStop never gets called but instead the WebSocket connection error is seen at last.

I believe this is related to issues addressed recently by #396 and #415

Read more comments on GitHub >

github_iconTop Results From Across the Web

Session timeouts for Microsoft 365
Sessions can expire when users are inactive, when they close the browser or tab, or when their authentication token expires for other reasons ......
Read more >
Session Timeout - an overview | ScienceDirect Topics
Session timeout is a fairly popular option that needs to be used carefully. ... It is used to determine how long a device...
Read more >
Setting user session timeout - IBM TRIRIGA
Users who are added to a Timeout User Group will have their sessions expire according to the value specified in the User Session...
Read more >
Easy, Yet Efficient Solution to Avoid Data Leakages: Idle ...
Configure Idle Session Timeout setting to automatically sign out users on unmanaged/personal devices if they are inactive over a configured ...
Read more >
How can I configure Session Timeout? - Freshworks support
Every time a user logs in to a Freshworks account on a device, a "session" is created. If you've logged into your account...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found