Recording Issue - 2.15.1

Hello Openvidu Team,

We have Pro 2.15.1 and using Individual recording mode. We’re facing Recording not started issue. We run multiple sessions parallel but It does not occur on all sessions, only some cases.

For some sessions recording status display “Not started” in OV Inspector

  • When checked on PRO server then no recording folder found for that specific session. In ideal cases folder gets created on PRO server as well.

  • When checked on media server then recording folder for that specific session was there but all webm files was of 0 bytes.

  • Tried to “Stop” and “Start” recording for this session from OV inspector but it always return “500 - Internal server error”. While there are other sessions going on at the same time and all of them are working fine with no issues.

When i scanned the log file i found error

  • error waiting for some recorder endpoint to start in session …
  • recording start failed for session … couldn’t initialize some RecorderEndpoint

I have seen on this forum, whosoever face this problem they get same type of message but could not understand the root cause.

just providing the server log for your reference ----

[INFO] 2020-09-17 10:50:01,700 io.openvidu.server.rest.SessionRestController - REST API: POST /api/sessions {mediaMode=ROUTED, customSessionId=XXXXX, recordingMode=MANUAL, defaultOutputMode=INDIVIDUAL}
[INFO] 2020-09-17 10:50:01,701 io.openvidu.server.rest.SessionRestController - New session XXXXX initialized [XXXXX]
[INFO] 2020-09-17 10:50:02,035 io.openvidu.server.rest.SessionRestController - REST API: POST /api/tokens {session= XXXXX, role=PUBLISHER, kurentoOptions={videoMaxRecvBandwidth=256, videoMaxSendBandwidth=256}, data=Teacher}
[INFO] 2020-09-17 10:50:02,047 io.openvidu.server.core.Session - Token created { Session: XXXXX | Tokens: [XXXXXXXXXX?sessionId= XXXXX&token=tok_SNOpUsn6pSEhRl2c&role=PUBLISHER&version=2.15.0&coturnIp= XXX.XX.X.XXXX&turnUsername=F99DWJ&turnCredential=tdzqou&webrtcStatsInterval=30] }

[INFO] 2020-09-17 10:50:02,532 [SessionHandler-a0o7rfei6telml5obdtibdp3f7-e2015-t0] io.openvidu.server.core.SessionManager - Participant con_SqLkYgEFaY of session XXXXX is a final user connecting to this session for the first time
[INFO] 2020-09-17 10:50:02,532 [SessionHandler-a0o7rfei6telml5obdtibdp3f7-e2015-t0] io.openvidu.server.kurento.core.KurentoSessionManager - No session ’ XXXXX’ exists yet. Created one on KMS ‘kms_HswcUW8h’ with ip ’ XXX.XX.X.XXXX’
[INFO] 2020-09-17 10:50:02,532 [SessionHandler-a0o7rfei6telml5obdtibdp3f7-e2015-t0] io.openvidu.server.kurento.core.KurentoSession - SESSION XXXXX: Creating MediaPipeline
[INFO] 2020-09-17 10:50:02,533 [http-nio-0.0.0.0-5443-exec-3] io.openvidu.server.rest.SessionRestController - New session YYYYY initialized [XXXXX, YYYYY]
[INFO] 2020-09-17 10:50:02,535 [SessionHandler-a0o7rfei6telml5obdtibdp3f7-e2015-t0] io.openvidu.server.kurento.core.KurentoSession - SESSION XXXXX: Added participant [participantPrivateId=a0o7rfei6telml5obdtibdp3f7, participantPublicId=con_SqLkYgEFaY, streaming=false]

[INFO] 2020-09-17 10:50:28,007 [jsonrpcTaskScheduler-1] io.openvidu.server.kurento.core.KurentoSessionManager - Request [LEAVE_ROOM] for participant con_SqLkYgEFaY of session XXXXX with reason networkDisconnect
[INFO] 2020-09-17 10:50:28,007 [jsonrpcTaskScheduler-1] io.openvidu.server.kurento.core.KurentoSession - PARTICIPANT con_SqLkYgEFaY: Leaving session XXXXX
[INFO] 2020-09-17 10:50:28,046 [jsonrpcTaskScheduler-1] io.openvidu.server.kurento.core.KurentoSessionManager - No more participants in session ’ XXXXX’, removing it and closing it
[INFO] 2020-09-17 10:50:28,047 [jsonrpcTaskScheduler-1] io.openvidu.server.core.SessionManager - Session ’ XXXXX’ removed and closed

  • [INFO] 2020-09-17 10:53:44,587 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.core.Session - Token consumed { Session: XXXXX | Tokens: [] }*

  • [INFO] 2020-09-17 10:53:44,587 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.core.SessionManager - Participant con_GF72YeiKlD of session XXXXX is a final user connecting to this session for the first time*

  • [INFO] 2020-09-17 10:53:44,587 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.kurento.core.KurentoSessionManager - No session ’ XXXXX’ exists yet. Created one on KMS ‘kms_HswcUW8h’ with ip ’ XXX.XX.X.XXXX’*

  • [INFO] 2020-09-17 10:53:44,587 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.kurento.core.KurentoSession - SESSION XXXXX: Creating MediaPipeline*

  • [INFO] 2020-09-17 10:53:44,589 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.kurento.core.KurentoSession - SESSION XXXXX: Added participant [participantPrivateId=fnoplv4hq7pmbonvrdubtioi1u, participantPublicId=con_GF72YeiKlD, streaming=false]*

  • [INFO] 2020-09-17 10:54:03,203 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘publish’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,288 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.kurento.core.KurentoParticipant - PARTICIPANT con_GF72YeiKlD: Request to publish video in room XXXXX (sdp type OFFER)*

  • [INFO] 2020-09-17 10:54:03,293 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.kurento.core.KurentoParticipant - PARTICIPANT con_GF72YeiKlD: Is now publishing video in room XXXXX*

  • [INFO] 2020-09-17 10:54:03,294 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,294 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,294 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,294 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,294 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,294 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,294 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,294 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,295 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:03,295 [SessionHandler-fnoplv4hq7pmbonvrdubtioi1u-e2111-t0] io.openvidu.server.rpc.RpcHandler - Participant con_GF72YeiKlD is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 10:54:04,354 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“oldState”:“DISCONNECTED”,“newState”:“CONNECTED”,“type”:“ConnectionStateChanged”,“timestamp”:1600340044349,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_GF72YeiKlD”,“endpoint”:“str_CAM_QspB_con_GF72YeiKlD”,“msSinceEndpointCreation”:1061,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 10:54:04,392 [I/O dispatcher 2] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“NOT_TRANSCODING”,“binName”:“kmsagnosticbin2-76”,“mediaType”:“AUDIO”,“type”:“MediaTranscodingStateChange”,“timestamp”:1600340044388,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_GF72YeiKlD”,“endpoint”:“str_CAM_QspB_con_GF72YeiKlD”,“msSinceEndpointCreation”:1100,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 10:54:04,394 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“FLOWING”,“padName”:“default”,“mediaType”:“AUDIO”,“type”:“MediaFlowOutStateChange”,“timestamp”:1600340044388,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_GF72YeiKlD”,“endpoint”:“str_CAM_QspB_con_GF72YeiKlD”,“msSinceEndpointCreation”:1100,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 10:54:04,470 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“FLOWING”,“padName”:“default”,“mediaType”:“VIDEO”,“type”:“MediaFlowOutStateChange”,“timestamp”:1600340044466,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_GF72YeiKlD”,“endpoint”:“str_CAM_QspB_con_GF72YeiKlD”,“msSinceEndpointCreation”:1178,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 10:54:04,520 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“NOT_TRANSCODING”,“binName”:“kmsagnosticbin2-77”,“mediaType”:“VIDEO”,“type”:“MediaTranscodingStateChange”,“timestamp”:1600340044516,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_GF72YeiKlD”,“endpoint”:“str_CAM_QspB_con_GF72YeiKlD”,“msSinceEndpointCreation”:1228,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 10:54:04,856 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“oldState”:“DISCONNECTED”,“newState”:“CONNECTED”,“type”:“MediaStateChanged”,“timestamp”:1600340044852,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_GF72YeiKlD”,“endpoint”:“str_CAM_QspB_con_GF72YeiKlD”,“msSinceEndpointCreation”:1564,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:04,548 [I/O dispatcher 3] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“NOT_FLOWING”,“padName”:“default”,“mediaType”:“AUDIO”,“type”:“MediaFlowOutStateChange”,“timestamp”:1600340404503,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_GF72YeiKlD”,“endpoint”:“str_CAM_QspB_con_GF72YeiKlD”,“msSinceEndpointCreation”:361215,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:04,598 [I/O dispatcher 3] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“NOT_FLOWING”,“padName”:“default”,“mediaType”:“VIDEO”,“type”:“MediaFlowOutStateChange”,“timestamp”:1600340404555,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_GF72YeiKlD”,“endpoint”:“str_CAM_QspB_con_GF72YeiKlD”,“msSinceEndpointCreation”:361267,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:05,044 [http-nio-0.0.0.0-5443-exec-10] io.openvidu.server.rest.SessionRestController - REST API: POST /api/sessions {mediaMode=ROUTED, customSessionId= XXXXX, recordingMode=MANUAL, defaultOutputMode=INDIVIDUAL}*

  • [INFO] 2020-09-17 11:00:05,863 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.rest.SessionRestController - REST API: POST /api/tokens {session= XXXXX, role=PUBLISHER, kurentoOptions={videoMaxRecvBandwidth=256, videoMaxSendBandwidth=256}, data=Teacher}*

  • [INFO] 2020-09-17 11:00:05,905 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.core.Session - Token created { Session: XXXXX | Tokens: [XXXXXXXXXX?sessionId= XXXXX&token=tok_KzXfrd2c1tEdFUNX&role=PUBLISHER&version=2.15.0&coturnIp= XXX.XX.X.XXXX&turnUsername=OXWTED&turnCredential=96nw1u&webrtcStatsInterval=30] }*

  • [INFO] 2020-09-17 11:00:06,547 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.core.Session - Token consumed { Session: XXXXX | Tokens: [] }*

  • [INFO] 2020-09-17 11:00:06,547 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.kurento.core.KurentoSession - SESSION XXXXX: Added participant [participantPrivateId=2qik46hkjo5qq8k87s3o3v8c3l, participantPublicId=con_L9fElfmBXU, streaming=false]*

  • [INFO] 2020-09-17 11:00:06,568 [I/O dispatcher 4] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “cdr” sent to Elasticsearch: {“sessionId”:" XXXXX",“timestamp”:1600340406547,“participantId”:“con_L9fElfmBXU”,“location”:“Delhi, India”,“platform”:“Chrome 85.0.4183.102 on Windows 8.1 64-bit”,“clientData”:"",“serverData”:“Teacher”,“event”:“participantJoined”,“geoPoints”:“28.6504,77.2372”,“elastic_type”:“cdr”}*

  • [INFO] 2020-09-17 11:00:08,620 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.rpc.RpcHandler - Participant con_L9fElfmBXU is calling method ‘publish’ in session XXXXX*

  • [INFO] 2020-09-17 11:00:08,667 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.kurento.core.KurentoParticipant - PARTICIPANT con_L9fElfmBXU: Request to publish video in room XXXXX (sdp type OFFER)*

  • [INFO] 2020-09-17 11:00:08,674 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.kurento.core.KurentoParticipant - PARTICIPANT con_L9fElfmBXU: Is now publishing video in room XXXXX*

  • [INFO] 2020-09-17 11:00:08,675 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.rpc.RpcHandler - Participant con_L9fElfmBXU is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 11:00:08,675 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.rpc.RpcHandler - Participant con_L9fElfmBXU is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 11:00:08,675 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.rpc.RpcHandler - Participant con_L9fElfmBXU is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 11:00:08,675 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.rpc.RpcHandler - Participant con_L9fElfmBXU is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 11:00:08,783 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“streamId”:1,“componentId”:1,“state”:“CONNECTING”,“type”:“IceComponentStateChange”,“timestamp”:1600340408682,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:14,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:08,783 [I/O dispatcher 2] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“streamId”:1,“componentId”:1,“state”:“GATHERING”,“type”:“IceComponentStateChange”,“timestamp”:1600340408681,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:13,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:08,783 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “cdr” sent to Elasticsearch: {“sessionId”:" XXXXX",“timestamp”:1600340408668,“streamId”:“str_CAM_Z9qx_con_L9fElfmBXU”,“participantId”:“con_L9fElfmBXU”,“connection”:“OUTBOUND”,“videoSource”:“CAMERA”,“videoFramerate”:15,“videoDimensions”:"{“width”:320,“height”:240}",“audioEnabled”:true,“videoEnabled”:true,“event”:“webrtcConnectionCreated”,“elastic_type”:“cdr”}*

  • [INFO] 2020-09-17 11:00:08,828 [I/O dispatcher 4] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“streamId”:1,“componentId”:2,“state”:“GATHERING”,“type”:“IceComponentStateChange”,“timestamp”:1600340408717,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:49,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:08,903 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.rpc.RpcHandler - Participant con_L9fElfmBXU is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 11:00:08,903 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.rpc.RpcHandler - Participant con_L9fElfmBXU is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 11:00:08,903 [SessionHandler-2qik46hkjo5qq8k87s3o3v8c3l-e2165-t0] io.openvidu.server.rpc.RpcHandler - Participant con_L9fElfmBXU is calling method ‘onIceCandidate’ in session XXXXX*

  • [INFO] 2020-09-17 11:00:09,008 [I/O dispatcher 4] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“streamId”:1,“componentId”:1,“state”:“CONNECTED”,“type”:“IceComponentStateChange”,“timestamp”:1600340408968,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:300,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:09,053 [I/O dispatcher 2] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“candidatePair”:{“streamID”:“1”,“componentID”:1,“localCandidate”:“candidate:17 1 UDP 1679819263 0.0.0.0 00000 typ srflx raddr 0.0.0.0 rport 00000”,“remoteCandidate”:“candidate:3348387281 1 UDP 41885695 XXX.XX.X.XXXX 63381 typ relay raddr 103.211.54.107 rport 57632”},“type”:“NewCandidatePairSelected”,“timestamp”:1600340408968,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:300,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:09,248 [I/O dispatcher 4] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“candidatePair”:{“streamID”:“1”,“componentID”:1,“localCandidate”:“candidate:17 1 UDP 1679819263 0.0.0.0 00000 typ srflx raddr 0.0.0.0 rport 00000”,“remoteCandidate”:“candidate:2433901470 1 UDP 1686052607 103.211.54.107 57632 typ srflx raddr 192.168.1.206 rport 57632”},“type”:“NewCandidatePairSelected”,“timestamp”:1600340409206,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:538,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:09,330 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.rest.SessionRestController - REST API: POST /api/recordings/start {session= XXXXX, outputMode=INDIVIDUAL}*

  • [INFO] 2020-09-17 11:00:09,334 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.RecordingService - New recording id ( XXXXX) and final name ( XXXXX)*

  • [INFO] 2020-09-17 11:00:09,334 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.SingleStreamRecordingService - Starting individual (video+audio) recording XXXXX of session XXXXX*

  • [INFO] 2020-09-17 11:00:09,334 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.SingleStreamRecordingService - Starting single stream recorder for stream str_CAM_Z9qx_con_L9fElfmBXU in session XXXXX*

  • [INFO] 2020-09-17 11:00:09,338 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.SingleStreamRecordingService - Starting single stream recorder for stream str_CAM_QspB_con_GF72YeiKlD in session XXXXX*

  • [INFO] 2020-09-17 11:00:09,758 [I/O dispatcher 2] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“oldState”:“DISCONNECTED”,“newState”:“CONNECTED”,“type”:“ConnectionStateChanged”,“timestamp”:1600340409734,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:1066,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:09,828 [I/O dispatcher 2] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“FLOWING”,“padName”:“default”,“mediaType”:“AUDIO”,“type”:“MediaFlowOutStateChange”,“timestamp”:1600340409783,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:1115,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:09,873 [I/O dispatcher 3] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“NOT_TRANSCODING”,“binName”:“kmsagnosticbin2-100”,“mediaType”:“AUDIO”,“type”:“MediaTranscodingStateChange”,“timestamp”:1600340409783,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:1115,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:09,903 [I/O dispatcher 2] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“FLOWING”,“padName”:“default”,“mediaType”:“VIDEO”,“type”:“MediaFlowOutStateChange”,“timestamp”:1600340409852,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:1184,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:09,933 [I/O dispatcher 3] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“state”:“NOT_TRANSCODING”,“binName”:“kmsagnosticbin2-101”,“mediaType”:“VIDEO”,“type”:“MediaTranscodingStateChange”,“timestamp”:1600340409873,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:1205,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:10,273 [I/O dispatcher 3] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“oldState”:“DISCONNECTED”,“newState”:“CONNECTED”,“type”:“MediaStateChanged”,“timestamp”:1600340410234,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:1566,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:10,808 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“type”:“IceGatheringDone”,“timestamp”:1600340410753,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:2085,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:10,998 [I/O dispatcher 1] io.openvidu.server.pro.cdr.CDRLoggerElasticSearch - New event of type “kms” sent to Elasticsearch: {“streamId”:1,“componentId”:1,“state”:“READY”,“type”:“IceComponentStateChange”,“timestamp”:1600340410819,“sessionId”:" XXXXX",“user”:“28009A487CEBF419”,“connection”:“con_L9fElfmBXU”,“endpoint”:“str_CAM_Z9qx_con_L9fElfmBXU”,“msSinceEndpointCreation”:2151,“elastic_type”:“kms”}*

  • [INFO] 2020-09-17 11:00:11,242 [jsonrpcTaskScheduler-1] io.openvidu.server.kurento.core.KurentoSessionManager - Request [LEAVE_ROOM] for participant con_GF72YeiKlD of session XXXXX with reason networkDisconnect*

  • [INFO] 2020-09-17 11:00:11,242 [jsonrpcTaskScheduler-1] io.openvidu.server.kurento.core.KurentoSession - PARTICIPANT con_GF72YeiKlD: Leaving session XXXXX*

  • [ERROR] 2020-09-17 11:00:11,242 [jsonrpcTaskScheduler-1] io.openvidu.server.recording.service.RecordingManager - Cannot stop recording of existing stream str_CAM_QspB_con_GF72YeiKlD. Session XXXXX is not being recorded

  • [ERROR] 2020-09-17 11:00:14,381 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.SingleStreamRecordingService - Error waiting for some recorder endpoint to start in session XXXXX*

  • [ERROR] 2020-09-17 11:00:14,381 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.RecordingService - Recording start failed for session XXXXX: Couldn’t initialize some RecorderEndpoint*

  • [ERROR] 2020-09-17 11:00:14,381 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.utils.CustomFileManager - Couldn’t overwrite file /opt/openvidu/recordings/ XXXXX/.recording. XXXXX. Error: /opt/openvidu/recordings/ XXXXX/.recording. XXXXX (No such file or directory)*

  • [INFO] 2020-09-17 11:00:14,381 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.SingleStreamRecordingService - Stopping individual (video+audio) recording XXXXX of session XXXXX. Reason: null*

  • [INFO] 2020-09-17 11:00:14,381 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.SingleStreamRecordingService - Stopping single stream recorder for stream str_CAM_QspB_con_GF72YeiKlD in session XXXXX*

  • [INFO] 2020-09-17 11:00:14,421 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.SingleStreamRecordingService - Stopping single stream recorder for stream str_CAM_Z9qx_con_L9fElfmBXU in session XXXXX*

  • [ERROR] 2020-09-17 11:00:14,452 [AbstractJsonRpcClientWebSocket-reqResEventExec-e77-t1431] io.openvidu.server.utils.CustomFileManager - Couldn’t create file /opt/openvidu/recordings/ XXXXX/.stream.str_CAM_Z9qx_con_L9fElfmBXU. Error: /opt/openvidu/recordings/ XXXXX/.stream.str_CAM_Z9qx_con_L9fElfmBXU (No such file or directory)*

@micael.gallego @ramavtar2020

Hello Openvidu Team,

Can you please look on this, we are facing this issue on daily basis and not able to find the root cause? Same issue, same error log and for some sessions only. Due to this behaviour we are just losing the Recording of live sessions.

Ovenvidu Team, can you please look into this? We are getting this issue on daily basis and this happen only a few times per day… all the other recordings are just fine.

Hi,

I think the problem is the unstability of the clients network. The log is a little bit complicated to understand, becasuse you have a lot of “XXXXXX” ids and I cannot really follow the flow of events taking place. But what I see is that user con_GF72YeiKlD is connecting un publishing to the session.

The problem is that at timestamps 2020-09-17 11:00:04,548 and 2020-09-17 11:00:04,598 the client WebRTC endpoint triggered events NOT_FLOWING for both audio and video. That means that OpenVidu stopped receiving media from the client’s connection. From that point there was no video reaching OpenVidu from that browser.

Then you start the recording at 2020-09-17 11:00:09,330. Some log lines below, at 2020-09-17 11:00:09,338 the Recorder Endpoint for the stream str_CAM_QspB_con_GF72YeiKlD of user con_GF72YeiKlD is being started, but as no media is reaching OpenVidu, the Recorder Endpoint cannot be initialized.

In the meantime, OpenVidu is evicting the participant from the session because it cannot reach the client. The time window provided to the client to reconnect as passed, and the user must be evicted from the session with reason “networkDisconnect”. You can see this at timestamp 2020-09-17 11:00:11,242. You can see finally that the recording failed to start because some expected media flow couldn’t be recorded to disk:

... Error waiting for some recorder endpoint to start in session XXXXX
... Recording start failed for session XXXXX: Couldn’t initialize some RecorderEndpoint*

The final 4 log lines are just OpenVidu trying to stop and clean up any possible recording element after the failed recording initalization process.

So the problem is a mix of 2 different things:

  1. OpenVidu works with INDIVIDUAL recording like this: when started, all of the streams already published to the session initialize their RecorderEndpoints immediatelly. If any of them fails to start for some external reason (in this case the browser wasn’t sending media to OpenVidu through the media connection), then the recording is considered “failed”. This is a very strict behavior, but also a very secure one: if something is wrong with the recording initialization and some streams are not able to be recorded, then return an error and return to the previous status of “session not being recorded”, cleaning up everything in the process. This way the application has the opportunity to warn the related clients and fix whatever may be happening to properly start the recording. Streams being published after the recording has started do not have this behavior, because now the application cannot react to possible errors during the RecorderEndpoint initialization. These streams won’t be recorded.
  2. My guess is that you are not catching the error returned by REST API method POST /api/recordings/start. These logs will have produced an error response (with status 500) upon this call:
[INFO] 2020-09-17 11:00:09,330 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.rest.SessionRestController - REST API: POST /api/recordings/start {session= XXXXX, outputMode=INDIVIDUAL}*

And return to your REST API client after all of the logs, at some point after 2020-09-17 11:00:14,452. If you catch this error, you will know that the recording has not properly started, and that no files are being recorded at all, so you can retry later. Situations when this exact scenario happens are not common, as you can imagine. This client disconnection happening at the very same moment that an INDIVIDUAL recording is being initialized is not a common thing.

We could nonetheless study the posibility of “relaxing” the INDIVIDUAL recording startup process to not directly fail when some user cannot be recorded.

Regards.

@pabloFuente, We call start Recording API once Stream is created and we do capture the error, and we received below response from the API
{
“id”: “123”,
“name”: “XXXX”,
“outputMode”: “INDIVIDUAL”,
“resolution”: “320X240”,
“sessionId”: “123”,
“createdAt”: XXXXXXXX,
“size”: 0,
“duration”: 0.0,
“hasAudio”: true,
“hasVideo”: true,
“status”: “started”
}
Because the return response was success, we thought everything is okay but we were observing Inspector panel where we found the status as “Recording not started”. We tried to refreshed the Teacher/Broadcaster 2-3 times to check if recording gets started or not. After that we tried from Inspector panel like “Stop Recording” then “Start Recording” but didn’t get any success.

After calling Stop Recording REST API we get following response

{
“timestamp”: XXXXXXXXXXX",
“status”: 500,
“error”: “Internal Server Error”,
“message”: “No message available”,
“path”: “XXXXXXXXXXX”
}

How we can restart the recording if we face such issues again, as we are facing this issue on daily basis and was not able to restart the recording till now.

I’m sharing the complete log with you over the email.

@pabloFuente, another case where we found Recording not started, I have tried to summarise the log,

Sequence of Publisher events, All connection id mentioned in this section is related to this single Publisher only. i’m worried there is only one Publisher in the class and stream 1 i.e. “str_CAM_FOd7_con_NEUBLBvUnp” is already destroyed before the “Recording start” API is called then why it’s trying to record both stream.

  • New Session API - REST API: POST /api/sessions [15:50:01,069]
  • con_NEUBLBvUnp created [15:50:02,321]
  • calling method Publish [15:50:07,791]
  • Publishing video [15:50:07,931]
  • Till 15:59:37,974 stas is going ok[Audio, video packet loss, jitter e.t.c]
  • NOT_FLOWING stas started [16:00:04,302]
  • New Session API - REST API: POST /api/sessions [16:00:04,518]
  • New TOken API [16:00:05,287]
  • con_OkSd1PFTll created [16:00:05,645]
  • con_OkSd1PFTll calling method ‘publish’ [16:00:08,709]
  • Publishing video [16:00:08,800]
  • Recording Start - REST API: POST /api/recordings/start [16:00:09,722]
  • 2020-09-22 16:00:09,724 - Starting single stream recorder for stream str_CAM_BH17_con_OkSd1PFTll in session 577377
  • 2020-09-22 16:00:09,767 - Starting single stream recorder for stream str_CAM_FOd7_con_NEUBLBvUnp in session 577377
  • con_NEUBLBvUnp Left Room [16:00:10,917]
  • stopped receiving media from con_NEUBLBvUnp [16:00:10,918]
  • Cannot stop recording of existing stream str_CAM_FOd7_con_NEUBLBvUnp [16:00:10,918]

More details can be found here -

@pabloFuente, seems you are right “The client disconnection happening at the very same moment that an INDIVIDUAL recording is being initialized
i’m able to reproduce it. Steps are…

  • Start session - Call REST API: POST /api/sessions
  • Get Token - Call REST API: POST /api/tokens
  • Init Publisher
  • Publish session (session.publish)
  • Get streamCreated event (Publisher on streamCreated event), once stream is created call start recording API
    • Call - REST API: POST /api/recordings/start

The moment i receive "Stream Created " event i Refreshed the page and found “Recording Error”, Now when i refreshed the page same steps proceed again but this time a fresh stream. As the recording is already initiated with ERROR state so it doesn’t allow recording for the same session. May be Openvidu takes some time to WARM up and clean such errors.
How can i handle this situation? Do i need to wait for some time before publishing the next stream?

Hi,

I will take a look at this in the following days. But let’s recap a moment and clarify your issue:

  1. You are saying that you receive a 200 OK from the REST API when you get this log error message in OpenVIdu Server:
[ERROR] 2020-09-17 11:00:14,381 [http-nio-0.0.0.0-5443-exec-9] io.openvidu.server.recording.service.SingleStreamRecordingService - Error waiting for some recorder endpoint to start in session XXXXX*

If that is correct, then it is a bug. But I cannot see anything wrong with the part of the code in charge of this. I will force the same error you described here and see what the response looks like.

  1. This last message is not the same case. This is a completely different thing: a failed recording should not block new recording attempts. Will look at this as well.

Regards.

Thanks please check, you can also see the sequence of streams being recorded(Last stream being started first and first stream being recorded last) as per logs provided earlier. Stream 1 i.e. “str_CAM_FOd7_con_NEUBLBvUnp” should be started first. Please see the timing

  • 2020-09-22 16:00:09,724 - Starting single stream recorder for stream str_CAM_BH17_con_OkSd1PFTll in session 577377
  • 2020-09-22 16:00:09,767 - Starting single stream recorder for stream str_CAM_FOd7_con_NEUBLBvUnp in session 577377

“Stream 1 i.e. “str_CAM_FOd7_con_NEUBLBvUnp” should be started first.”

Why is that?

I don’t know why it happened, this is sequence which i got from log files. As per log files
first connection and first stream was - con_NEUBLBvUnp and str_CAM_FOd7_con_NEUBLBvUnp so ideally this should be recorded first.

I’ve tested problem number 1)

By using REST API /api/recordings/start method the behavior is the expected one. Trying to start INDIVIDUAL recording in a session with 2 publishers, one of them being cut off of its video stream, and for that reason triggering the error log you posted:

[INFO] 25 Sep 17:06:38.393 [https-jsse-nio-0.0.0.0-4443-exec-10] (SessionRestController.java:449) - REST API: POST /api/recordings/start {session=TestSession, hasAudio=true, hasVideo=true, resolution=1920x1080, outputMode=INDIVIDUAL, recordingLayout=BEST_FIT, customLayout=CUSTOM_LAYOUT, shmSize=12345}
[INFO] 25 Sep 17:06:38.394 [https-jsse-nio-0.0.0.0-4443-exec-10] (RecordingService.java:167) - New recording id (TestSession) and final name (TestSession)
[INFO] 25 Sep 17:06:38.394 [https-jsse-nio-0.0.0.0-4443-exec-10] (SingleStreamRecordingService.java:93) - Starting individual (video+audio) recording TestSession of session TestSession
[INFO] 25 Sep 17:06:38.395 [https-jsse-nio-0.0.0.0-4443-exec-10] (SingleStreamRecordingService.java:210) - Starting single stream recorder for stream str_CAM_NiU5_con_QK8MpNJhRv in session TestSession
[INFO] 25 Sep 17:06:38.406 [https-jsse-nio-0.0.0.0-4443-exec-10] (SingleStreamRecordingService.java:210) - Starting single stream recorder for stream str_CAM_F34P_con_XMcJMSwBpV in session TestSession
[INFO] 25 Sep 17:06:38.482 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t12] (SingleStreamRecordingService.java:234) - Recording started event for stream str_CAM_NiU5_con_QK8MpNJhRv
[INFO] 25 Sep 17:06:38.487 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t12] (SingleStreamRecordingService.java:234) - Recording started event for stream str_CAM_F34P_con_XMcJMSwBpV
[ERROR] 25 Sep 17:06:43.453 [https-jsse-nio-0.0.0.0-4443-exec-10] (SingleStreamRecordingService.java:125) - Error waiting for some recorder endpoint to start in session TestSession
[ERROR] 25 Sep 17:06:43.453 [https-jsse-nio-0.0.0.0-4443-exec-10] (RecordingService.java:186) - Recording start failed for session TestSession: Couldn't initialize some RecorderEndpoint
[INFO] 25 Sep 17:06:43.454 [https-jsse-nio-0.0.0.0-4443-exec-10] (RecordingService.java:137) - Sealed recording metadata file at /opt/openvidu/recordings/TestSession/.recording.TestSession with status [failed]
[INFO] 25 Sep 17:06:43.454 [https-jsse-nio-0.0.0.0-4443-exec-10] (SingleStreamRecordingService.java:147) - Stopping individual (video+audio) recording TestSession of session TestSession. Reason: null
[INFO] 25 Sep 17:06:43.455 [https-jsse-nio-0.0.0.0-4443-exec-10] (SingleStreamRecordingService.java:283) - Stopping single stream recorder for stream str_CAM_NiU5_con_QK8MpNJhRv in recording TestSession
[INFO] 25 Sep 17:06:43.458 [https-jsse-nio-0.0.0.0-4443-exec-10] (SingleStreamRecordingService.java:283) - Stopping single stream recorder for stream str_CAM_F34P_con_XMcJMSwBpV in recording TestSession
[INFO] 25 Sep 17:06:43.461 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t12] (SingleStreamRecordingService.java:291) - Recording stopped event for stream str_CAM_NiU5_con_QK8MpNJhRv
[INFO] 25 Sep 17:06:43.509 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t12] (SingleStreamRecordingService.java:291) - Recording stopped event for stream str_CAM_F34P_con_XMcJMSwBpV
[INFO] 25 Sep 17:06:43.611 [https-jsse-nio-0.0.0.0-4443-exec-10] (RecordingService.java:176) - KMS recording file permissions successfully updated
[INFO] 25 Sep 17:06:43.612 [https-jsse-nio-0.0.0.0-4443-exec-10] (RecordingService.java:137) - Sealed recording metadata file at /opt/openvidu/recordings/TestSession/.recording.TestSession with status [failed]
[INFO] 25 Sep 17:06:43.613 [https-jsse-nio-0.0.0.0-4443-exec-10] (CDRLoggerFile.java:35) - {"recordingStatusChanged":{"sessionId":"TestSession","timestamp":1601046403612,"startTime":1601046398395,"duration":4.983,"id":"TestSession","name":"TestSession","outputMode":"INDIVIDUAL","hasAudio":true,"hasVideo":true,"size":1303882,"status":"failed"}}

You can see the log lines:
Error waiting for some recorder endpoint to start in session TestSession
Recording start failed for session TestSession: Couldn't initialize some RecorderEndpoint

The recording is wrapped up with status “failed”. And what I receive in my REST client is this response:

So I do actually receive a 500 HTTP response error status. Not 200 OK. So I know something went wrong, and I know that the reason is that some user could not start being recorded.

And the same for a Java application making use of openvidu-java-client SDK library:

My code triggers the expected OpenViduHttpException with 500 status. Are you sure you are getting a 200 OK response status when this situation happens? I’m not able to replicate your error.

@pabloFuente, i got 200 OK case in only one Failed recording, i don’t know what was the use case for that. For all other failed cases which i have also described in my 24-Sep post i.e. i’m getting Recording error but somehow same session was not recorded again, which is happening in all Failed Recording cases and I’m not able to Re-record the same session again.

During live session the time frame is very less to take the decision whether we want to continue the session or not, so all related operations like “Refresh Teacher and check recording started or not”, “Try Start/Stop Recording from Inspector panel” happens within a Minute, if we get success then continue the class otherwise switch to fallback.

The main problem is next stream recording should be recorded if some previous recording is getting failed for some reason.

As far my observation, it seems if you record the next stream just after the previous failed recording, it does not get recorded may be due to Openvidu takes some time to WARM up and clean such errors and any new call in between (to record the next stream of the same session) fails once again.

I think in your case you are also not able to record second stream if 1’st stream recording could not be initialised.

@rohit.roy are you storing files directly into the hard drive, using NFS or something like this? I ask because I had some problems using NFS. The recordings took a long time to start. I resolved using NFS in the same region as the machines.

1 Like

@Thiago_Henrique, No i’m not using NFS.
I am using Pro version and official deployment template uses EBS. In Pro, Recording is created in media node and once recording is closed it’s moved to Master Node. It’s the internal Openvidu process.

I think the problem which i’m facing it’s not related to hard drive as in the same time there are others sessions whose recording is going well.

I’m also able to reproduce this which is described in my earlier thread. The main challenges is, in some cases i am not able to record the next stream of this Session if recording of 1’st stream of this session could not be initialised or failed.
And as per my observation i found that the Recording will not start for this failed session until the previous failed recording of this Session is not closed from the Openvidu warm process.

Hi rohit,

Nice to meet you.
Did you find the solution for this issue?. We are facing similar issue itseems.

@deepak_hegde, Client disconnection can happen due to different reasons may be due to unstable internet connectivity or manually/forcly refreshed by broadcaster. The best way to handle all these scenario is to handle it gracefully from your front-end while interacting with OV API.
For e.g let’s see one scenario - if you have called Recording initiate API and during that time Broadcaster is forcly refreshing the page you can detect the refresh event and can prompt user and can wait until you get Recording API response from OV.

I also used to same approach where ever i faced issue and make sure everything is fine at Broadcaster side (Stream is established, Recording is started e.t.c) before publishing the stream to subscribers.

Hi,

How did you able to reproduce this issue?

May I know the flow? As we could not able reproduce this.
This e-mail and any files transmitted with it are for the sole and exclusive use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended addressee, or the person responsible for delivering it to the intended addressee, you are hereby notified that reading, disseminating, distributing or copying this mail is strictly prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies and the original message. Any unauthorised review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and unlawful.

I have set minimum bandwidth to 0. Setting it to any minimum bandwidth (like 300 kbps) will solve this issue?