Android Request has timed out n Request: method:leaveRoom params

I am getting this issue in android app as well as web. Doing clean session disconnect, yet I am seeing this error especially in Android (react native). It is causing trouble as users seeing blank screens after this happens, here is the stack trace:

openvidu-browser-2.14.0.min.js:1 ERROR:Request has timed out in Request: method:leaveRoom params:{} request:{"jsonrpc":"2.0","method":"leaveRoom","params":{},"id":48}
(anonymous) @ openvidu-browser-2.14.0.min.js:1
dispatchCallback @ openvidu-browser-2.14.0.min.js:1
timeout @ openvidu-browser-2.14.0.min.js:1
setTimeout (async)
sendRequest @ openvidu-browser-2.14.0.min.js:1
RpcBuilder.encode @ openvidu-browser-2.14.0.min.js:1
JsonRpcClient.send @ openvidu-browser-2.14.0.min.js:1
OpenVidu.sendRequest @ openvidu-browser-2.14.0.min.js:1
Session.leave @ openvidu-browser-2.14.0.min.js:1
Session.disconnect @ openvidu-browser-2.14.0.min.js:1
(anonymous) @ telemedOVController.js:353
$broadcast @ angular.js:18320
$destroy @ angular.js:17935
cleanupLastView @ angular-ui-router.js:4017
(anonymous) @ angular-ui-router.js:4075
publicLinkFn @ angular.js:8689
lazyCompilation @ angular.js:9047
updateView @ angular-ui-router.js:4056
(anonymous) @ angular-ui-router.js:4005
$broadcast @ angular.js:18320
(anonymous) @ angular-ui-router.js:3369
processQueue @ angular.js:16696
(anonymous) @ angular.js:16712
$eval @ angular.js:17994
$digest @ angular.js:17808
$apply @ angular.js:18102
done @ angular.js:12082
completeRequest @ angular.js:12291
requestLoaded @ angular.js:12219
load (async)
(anonymous) @ angular.js:12202
sendReq @ angular.js:12027
serverRequest @ angular.js:11822
processQueue @ angular.js:16696
(anonymous) @ angular.js:16712
$eval @ angular.js:17994
$digest @ angular.js:17808
$apply @ angular.js:18102
done @ angular.js:12082
completeRequest @ angular.js:12291
requestLoaded @ angular.js:12219
load (async)
(anonymous) @ angular.js:12202
sendReq @ angular.js:12027
serverRequest @ angular.js:11822
processQueue @ angular.js:16696
(anonymous) @ angular.js:16712
$eval @ angular.js:17994
$digest @ angular.js:17808
(anonymous) @ angular.js:13995
(anonymous) @ angular.js:6226
forEach @ angular.js:325
fireUrlChange @ angular.js:6225
cacheStateAndFireUrlChange @ angular.js:6201
dispatch @ jquery.js:4737
elemData.handle @ jquery.js:4549
openvidu-browser-2.14.0.min.js:1 Error: Request has timed out
    at timeout (openvidu-browser-2.14.0.min.js:1)

For some reason the message is not returning from server.

Can you share OpenVidu server logs? Do you have any way to reproduce the issue? Is it happening in production or in your development machine? What is the frequency of the problem?

Regards

Getting this error on the client end consistently right after ending the session.

ov-disconnect-error

Here are the logs (don’t see anything alarming):

[INFO] 2020-06-29 18:52:06,471 [ef0d3850v-e4-t0] io.openvidu.server.rpc.RpcHandler - Participant con_EmRuel3dXc is calling method 'disconnect' in session 3493A6UR9PRX [INFO] 2020-06-29 18:52:06,471 [ef0d3850v-e4-t0] io.openvidu.server.kurento.core.KurentoSessionManager - Request [LEAVE_ROOM] for participant con_EmRuel3dXc of session 3493A6UR9PRX with reason disconnect [INFO] 2020-06-29 18:52:06,472 [ef0d3850v-e4-t0] io.openvidu.server.kurento.core.KurentoSession - PARTICIPANT con_EmRuel3dXc: Leaving session 3493A6UR9PRX [INFO] 2020-06-29 18:52:06,511 [ef0d3850v-e4-t0] io.openvidu.server.coturn.CoturnCredentialsService - Deleting COTURN user [INFO] 2020-06-29 18:52:06,533 [ef0d3850v-e4-t0] io.openvidu.server.coturn.CoturnCredentialsService - COTURN user deleted: true [INFO] 2020-06-29 18:52:06,534 [ef0d3850v-e4-t0] io.openvidu.server.kurento.core.KurentoSessionManager - No more participants in session '3493A6UR9PRX', removing it and closing it [INFO] 2020-06-29 18:52:06,536 [ef0d3850v-e4-t0] io.openvidu.server.core.SessionManager - Session '3493A6UR9PRX' removed and closed [INFO] 2020-06-29 18:52:06,540 [ef0d3850v-e4-t0] io.openvidu.server.rpc.RpcNotificationService - Closed session for participant with private id he8nc58920ncm4fukef0d3850v [INFO] 2020-06-29 18:52:06,540 [ef0d3850v-e4-t0] io.openvidu.server.rpc.RpcNotificationService - <PRIVATE_ID, RPC_CONNECTION>: {} [INFO] 2020-06-29 18:52:06,540 [ef0d3850v-e4-t0] io.openvidu.server.rpc.RpcHandler - Participant con_EmRuel3dXc has left session 3493A6UR9PRX [INFO] 2020-06-29 18:52:16,539 [TaskScheduler-1] io.openvidu.server.rpc.RpcHandler - After connection closed for WebSocket session: he8nc58920ncm4fukef0d3850v - Status: null

Hello,

Even with 2.15 I am seeing this error(after a few sec. of disconnecting the session.

I am following the steps as described in the javascript tutorial. am i missing anything?

Thanks

Can you describe how have you deployed OpenVidu and the exact steps to reproduce the issue? How you leave the session, how many participants are in the session when you try to leave it?

Hello,

We deployed OV in EC2 instance and without using docker. Below are the steps to reproduce the issue:

  1. User 1 and 2 join a session using two different web applications running same version of ov browser-client (v2.15)
  2. User 1 ends the session (session.disconnect()), which broadcasts streamDestroyed event. This event is handled on both ends.
  3. User 1 side calls removeUserData immediately, when streamDestroyed is received
  4. User 2 side calls session.disconnect() and removeUserData after 3 sec. when streamDestroyed is received

Below is the error I see on the server side:

> [INFO] 2020-07-27 11:51:51,027 [SessionHandler-plarhqau87eqnupk3fjqc5lg0a-e118-t0] io.openvidu.server.kurento.core.KurentoParticipant - PARTICIPANT con_Lv7gJ4xlDY: Is now receiving video from con_PyWSmqnPCC in room shahbaz987
> [ERROR] 2020-07-27 11:51:51,030 [SessionHandler-plarhqau87eqnupk3fjqc5lg0a-e118-t0] org.kurento.jsonrpc.internal.ws.JsonRpcWebSocketHandler - Trying to send a message to a closed session
> [ERROR] 2020-07-27 11:51:51,042 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t353] io.openvidu.server.rpc.RpcNotificationService - Exception sending notification 'iceCandidate': {"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:2 1 TCP 1015022079 18.190.24.147 9 typ host tcptype active"} to participant with private id plarhqau87eqnupk3fjqc5lg0a
> org.kurento.commons.exception.KurentoException: Exception while sending message '{"method":"iceCandidate","params":{"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:2 1 TCP 1015022079 18.190.24.147 9 typ host tcptype active"},"jsonrpc":"2.0"}' to websocket with native sessionId 'b753b2f3-0f1c-e644-7acf-c045b3857b3c'
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.sendRequestWebSocket(WebSocketServerSession.java:123)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.access$000(WebSocketServerSession.java:49)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession$1.internalSendRequest(WebSocketServerSession.java:74)
> 	at org.kurento.jsonrpc.internal.JsonRpcRequestSenderHelper.sendRequest(JsonRpcRequestSenderHelper.java:75)
> 	at org.kurento.jsonrpc.internal.JsonRpcRequestSenderHelper.sendNotification(JsonRpcRequestSenderHelper.java:156)
> 	at org.kurento.jsonrpc.internal.server.ServerSession.sendNotification(ServerSession.java:121)
> 	at io.openvidu.server.rpc.RpcNotificationService.sendNotification(RpcNotificationService.java:105)
> 	at io.openvidu.server.kurento.core.KurentoSessionEventsHandler.onIceCandidate(KurentoSessionEventsHandler.java:44)
> 	at io.openvidu.server.kurento.core.KurentoSession.sendIceCandidate(KurentoSession.java:163)
> 	at io.openvidu.server.kurento.core.KurentoParticipant.sendIceCandidate(KurentoParticipant.java:414)
> 	at io.openvidu.server.kurento.endpoint.MediaEndpoint.lambda$registerOnIceCandidateEventListener$0(MediaEndpoint.java:540)
> 	at org.kurento.client.internal.client.RemoteObjectInvocationHandler.propagateEventTo(RemoteObjectInvocationHandler.java:281)
> 	at org.kurento.client.internal.client.RemoteObjectInvocationHandler$1.onEvent(RemoteObjectInvocationHandler.java:208)
> 	at org.kurento.client.internal.client.RemoteObject.fireEvent(RemoteObject.java:345)
> 	at org.kurento.client.internal.client.RomClientObjectManager.processEvent(RomClientObjectManager.java:58)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.processEvent(RomClientJsonRpcClient.java:206)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.access$000(RomClientJsonRpcClient.java:74)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient$1.handleRequest(RomClientJsonRpcClient.java:182)
> 	at org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:142)
> 	at org.kurento.jsonrpc.client.AbstractJsonRpcClientWebSocket$15.run(AbstractJsonRpcClientWebSocket.java:577)
> 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> 	at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: java.lang.IllegalStateException: Message will not be sent because the WebSocket session has been closed
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:430)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:309)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:250)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:223)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:49)
> 	at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:215)
> 	at org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:106)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.sendRequestWebSocket(WebSocketServerSession.java:119)
> 	... 24 common frames omitted
> [ERROR] 2020-07-27 11:51:51,050 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t353] io.openvidu.server.rpc.RpcNotificationService - Exception sending notification 'iceCandidate': {"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:3 1 TCP 1010827775 18.190.24.147 63428 typ host tcptype passive"} to participant with private id plarhqau87eqnupk3fjqc5lg0a
> org.kurento.commons.exception.KurentoException: Exception while sending message '{"method":"iceCandidate","params":{"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:3 1 TCP 1010827775 18.190.24.147 63428 typ host tcptype passive"},"jsonrpc":"2.0"}' to websocket with native sessionId 'b753b2f3-0f1c-e644-7acf-c045b3857b3c'
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.sendRequestWebSocket(WebSocketServerSession.java:123)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.access$000(WebSocketServerSession.java:49)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession$1.internalSendRequest(WebSocketServerSession.java:74)
> 	at org.kurento.jsonrpc.internal.JsonRpcRequestSenderHelper.sendRequest(JsonRpcRequestSenderHelper.java:75)
> 	at org.kurento.jsonrpc.internal.JsonRpcRequestSenderHelper.sendNotification(JsonRpcRequestSenderHelper.java:156)
> 	at org.kurento.jsonrpc.internal.server.ServerSession.sendNotification(ServerSession.java:121)
> 	at io.openvidu.server.rpc.RpcNotificationService.sendNotification(RpcNotificationService.java:105)
> 	at io.openvidu.server.kurento.core.KurentoSessionEventsHandler.onIceCandidate(KurentoSessionEventsHandler.java:44)
> 	at io.openvidu.server.kurento.core.KurentoSession.sendIceCandidate(KurentoSession.java:163)
> 	at io.openvidu.server.kurento.core.KurentoParticipant.sendIceCandidate(KurentoParticipant.java:414)
> 	at io.openvidu.server.kurento.endpoint.MediaEndpoint.lambda$registerOnIceCandidateEventListener$0(MediaEndpoint.java:540)
> 	at org.kurento.client.internal.client.RemoteObjectInvocationHandler.propagateEventTo(RemoteObjectInvocationHandler.java:281)
> 	at org.kurento.client.internal.client.RemoteObjectInvocationHandler$1.onEvent(RemoteObjectInvocationHandler.java:208)
> 	at org.kurento.client.internal.client.RemoteObject.fireEvent(RemoteObject.java:345)
> 	at org.kurento.client.internal.client.RomClientObjectManager.processEvent(RomClientObjectManager.java:58)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.processEvent(RomClientJsonRpcClient.java:206)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.access$000(RomClientJsonRpcClient.java:74)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient$1.handleRequest(RomClientJsonRpcClient.java:182)
> 	at org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:142)
> 	at org.kurento.jsonrpc.client.AbstractJsonRpcClientWebSocket$15.run(AbstractJsonRpcClientWebSocket.java:577)
> 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> 	at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.checkState(WsRemoteEndpointImplBase.java:1234)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.textPartialStart(WsRemoteEndpointImplBase.java:1191)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:222)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:49)
> 	at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:215)
> 	at org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:106)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.sendRequestWebSocket(WebSocketServerSession.java:119)
> 	... 24 common frames omitted
> [ERROR] 2020-07-27 11:51:51,052 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t353] io.openvidu.server.rpc.RpcNotificationService - Exception sending notification 'iceCandidate': {"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:1 2 UDP 2013266430 18.190.24.147 16626 typ host"} to participant with private id plarhqau87eqnupk3fjqc5lg0a
> org.kurento.commons.exception.KurentoException: Exception while sending message '{"method":"iceCandidate","params":{"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:1 2 UDP 2013266430 18.190.24.147 16626 typ host"},"jsonrpc":"2.0"}' to websocket with native sessionId 'b753b2f3-0f1c-e644-7acf-c045b3857b3c'
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.sendRequestWebSocket(WebSocketServerSession.java:123)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.access$000(WebSocketServerSession.java:49)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession$1.internalSendRequest(WebSocketServerSession.java:74)
> 	at org.kurento.jsonrpc.internal.JsonRpcRequestSenderHelper.sendRequest(JsonRpcRequestSenderHelper.java:75)
> 	at org.kurento.jsonrpc.internal.JsonRpcRequestSenderHelper.sendNotification(JsonRpcRequestSenderHelper.java:156)
> 	at org.kurento.jsonrpc.internal.server.ServerSession.sendNotification(ServerSession.java:121)
> 	at io.openvidu.server.rpc.RpcNotificationService.sendNotification(RpcNotificationService.java:105)
> 	at io.openvidu.server.kurento.core.KurentoSessionEventsHandler.onIceCandidate(KurentoSessionEventsHandler.java:44)
> 	at io.openvidu.server.kurento.core.KurentoSession.sendIceCandidate(KurentoSession.java:163)
> 	at io.openvidu.server.kurento.core.KurentoParticipant.sendIceCandidate(KurentoParticipant.java:414)
> 	at io.openvidu.server.kurento.endpoint.MediaEndpoint.lambda$registerOnIceCandidateEventListener$0(MediaEndpoint.java:540)
> 	at org.kurento.client.internal.client.RemoteObjectInvocationHandler.propagateEventTo(RemoteObjectInvocationHandler.java:281)
> 	at org.kurento.client.internal.client.RemoteObjectInvocationHandler$1.onEvent(RemoteObjectInvocationHandler.java:208)
> 	at org.kurento.client.internal.client.RemoteObject.fireEvent(RemoteObject.java:345)
> 	at org.kurento.client.internal.client.RomClientObjectManager.processEvent(RomClientObjectManager.java:58)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.processEvent(RomClientJsonRpcClient.java:206)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.access$000(RomClientJsonRpcClient.java:74)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient$1.handleRequest(RomClientJsonRpcClient.java:182)
> 	at org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:142)
> 	at org.kurento.jsonrpc.client.AbstractJsonRpcClientWebSocket$15.run(AbstractJsonRpcClientWebSocket.java:577)
> 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> 	at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.checkState(WsRemoteEndpointImplBase.java:1234)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.textPartialStart(WsRemoteEndpointImplBase.java:1191)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:222)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:49)
> 	at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:215)
> 	at org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:106)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.sendRequestWebSocket(WebSocketServerSession.java:119)
> 	... 24 common frames omitted
> [ERROR] 2020-07-27 11:51:51,055 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t353] io.openvidu.server.rpc.RpcNotificationService - Exception sending notification 'iceCandidate': {"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:2 2 TCP 1015022078 18.190.24.147 9 typ host tcptype active"} to participant with private id plarhqau87eqnupk3fjqc5lg0a
> org.kurento.commons.exception.KurentoException: Exception while sending message '{"method":"iceCandidate","params":{"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:2 2 TCP 1015022078 18.190.24.147 9 typ host tcptype active"},"jsonrpc":"2.0"}' to websocket with native sessionId 'b753b2f3-0f1c-e644-7acf-c045b3857b3c'
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.sendRequestWebSocket(WebSocketServerSession.java:123)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.access$000(WebSocketServerSession.java:49)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession$1.internalSendRequest(WebSocketServerSession.java:74)
> 	at org.kurento.jsonrpc.internal.JsonRpcRequestSenderHelper.sendRequest(JsonRpcRequestSenderHelper.java:75)
> 	at org.kurento.jsonrpc.internal.JsonRpcRequestSenderHelper.sendNotification(JsonRpcRequestSenderHelper.java:156)
> 	at org.kurento.jsonrpc.internal.server.ServerSession.sendNotification(ServerSession.java:121)
> 	at io.openvidu.server.rpc.RpcNotificationService.sendNotification(RpcNotificationService.java:105)
> 	at io.openvidu.server.kurento.core.KurentoSessionEventsHandler.onIceCandidate(KurentoSessionEventsHandler.java:44)
> 	at io.openvidu.server.kurento.core.KurentoSession.sendIceCandidate(KurentoSession.java:163)
> 	at io.openvidu.server.kurento.core.KurentoParticipant.sendIceCandidate(KurentoParticipant.java:414)
> 	at io.openvidu.server.kurento.endpoint.MediaEndpoint.lambda$registerOnIceCandidateEventListener$0(MediaEndpoint.java:540)
> 	at org.kurento.client.internal.client.RemoteObjectInvocationHandler.propagateEventTo(RemoteObjectInvocationHandler.java:281)
> 	at org.kurento.client.internal.client.RemoteObjectInvocationHandler$1.onEvent(RemoteObjectInvocationHandler.java:208)
> 	at org.kurento.client.internal.client.RemoteObject.fireEvent(RemoteObject.java:345)
> 	at org.kurento.client.internal.client.RomClientObjectManager.processEvent(RomClientObjectManager.java:58)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.processEvent(RomClientJsonRpcClient.java:206)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.access$000(RomClientJsonRpcClient.java:74)
> 	at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient$1.handleRequest(RomClientJsonRpcClient.java:182)
> 	at org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:142)
> 	at org.kurento.jsonrpc.client.AbstractJsonRpcClientWebSocket$15.run(AbstractJsonRpcClientWebSocket.java:577)
> 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> 	at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.checkState(WsRemoteEndpointImplBase.java:1234)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.textPartialStart(WsRemoteEndpointImplBase.java:1191)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:222)
> 	at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:49)
> 	at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:215)
> 	at org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:106)
> 	at org.kurento.jsonrpc.internal.ws.WebSocketServerSession.sendRequestWebSocket(WebSocketServerSession.java:119)
> 	... 24 common frames omitted
> [ERROR] 2020-07-27 11:51:51,056 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t353] io.openvidu.server.rpc.RpcNotificationService - Exception sending notification 'iceCandidate': {"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:3 2 TCP 1010827774 18.190.24.147 40860 typ host tcptype passive"} to participant with private id plarhqau87eqnupk3fjqc5lg0a
> org.kurento.commons.exception.KurentoException: Exception while sending message '{"method":"iceCandidate","params":{"senderConnectionId":"con_PyWSmqnPCC","endpointName":"con_Lv7gJ4xlDY_str_CAM_IPTp_con_PyWSmqnPCC","sdpMLineIndex":0,"sdpMid":"audio","candidate":"candidate:3 2 TCP 1010827774 18.190.24.147 40860 typ host tcptype passive"},"jsonrpc":"2.0"}' to websocket with native sessionId 'b753b2f3-0f1c-e644-7acf-c045b3857b3c'

Note that same client error received in the React native client as well.

Is this error affecting your app in some way? Or it is just appearing in the log?

Short answer is yes it does.

Whereas it doesn’t impact Web based applications, yet it does effect React native based app. The exception causes the app to become unresponsive and sometimes the video screen goes blank (although this could be a separate issue).

Seeing Kurento error logs, can you tell what is wrong?

Definitely, would like to know what we are missing here, either in the setup or in the client code. If needed, I can privately send relevant modules from our web and react native sides.

disconnect() was getting called twice and was the reason for throwing above exception. Object was wrapped for safety however, wasn’t getting reset until I explicitly set it to null (after calling disconnect).

You can close this issue.