Search code examples
opensslwebrtcchromium

WebRTC connection could not be established on Chrome 124


i am working on an application that uses webrtc connections for audio, while testing the new version of chrome 124, which is currently in beta but to be released officially in a few days, we noticed that the audio stopped working for us.

while listening for packets using wireshark that are sent between the client and the server we noticed that one packet that informs us handshake when trying to initialize the connection, but it is not written what caused this error

enter image description here

looking further we extended the webrtc logs in chrome with additional flags --enable-logging --vmodule=/webrtc/=1

from them we were able to read additional information that informs us that the error occurred when the client tried to send the certificate [18496:21896:0403/131717.236:WARNING:openssl_adapter.cc(820)] write_alert fatal handshake failure TLS client send_client_certificate [18496:21896:0403/131717.236:INFO:openssl_adapter.cc(817)] connect_exit TLS client send_client_certificate [18496:21896:0403/131717.236:WARNING:openssl_stream_adapter.cc(949)] OpenSSLStreamAdapter::Error(ContinueSSL, 1, 0) [18496:21896:0403/131717.236:INFO:dtls_transport.cc(756)] DtlsTransport[0|1|]: DTLS transport error, code=1 [18496:21896:0403/131717.236:VERBOSE1:dtls_transport.cc(863)] DtlsTransport[0|1|]: set_dtls_state from:1 to 4

RTCPeerConnection went into failed state on onconnectionstatechange listener

Application is working fine on all older versions of chromium and all Firefox versions

What could have caused this error in the new version? Looking through the changes in the changelog, I did not find anything that could cause this error https://chromestatus.com/features#milestone%3D124


Solution

  • The issue for us was we only supported ClientCertificateType.rsa_sign but needed to support ClientCertificateType.ecdsa_sign for Chrome 124 as well.