Jitsi Meet in Android 11 Stopped Connecting

Hi all,

We have been using Jitsi Meet (with prosody authentication) in our servers for more than a year. We’ve one front-end and seven back-end JVB VMs.

Recently, it is noticed that Android 11 clients are not able to connect. It immediately shows error “You have been disconnected.” without asking for authentication.

On the server side, following gets logged in nginx error logs:

2021/04/22 19:55:55 [error] 7452#7452: *1578915 connect() failed (111: Connection refused) while connecting to upstream, client: 49.205.242.89, server: 0.0.0.0:443, upstream: “127.0.0.1:4445”, bytes from/to client:0/0, bytes from/to upstream:0/0

What could be the reason for disconnection?

That suggests nginx could not connect to its upstream.

Can you gather Android logs with adb logcat ?

Here is the log:

$ ./adb logcat | grep -i jitsi
04-23 10:10:55.963 9887 11808 I JitsiMeetSDK: [features/base/connection] No connection found while disconnecting.
04-23 10:10:56.023 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied)
04-23 10:10:56.023 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied)
04-23 10:10:56.023 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setUseSessionTickets(Z)V (greylist-max-q, reflection, denied)
04-23 10:10:56.024 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied)
04-23 10:10:56.024 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied)
04-23 10:10:56.024 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q, reflection, denied)
04-23 10:10:56.025 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:56.025 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setAlpnProtocols([B)V (greylist-max-q, reflection, denied) 04-23 10:10:56.066 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:56.066 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->getAlpnSelectedProtocol()[B (greylist-max-q, reflection, denied) 04-23 10:10:56.200 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:56.200 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:56.200 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setUseSessionTickets(Z)V (greylist-max-q, reflection, denied) 04-23 10:10:56.201 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:56.201 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:56.201 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q, reflection, denied) 04-23 10:10:56.202 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:56.202 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setAlpnProtocols([B)V (greylist-max-q, reflection, denied) 04-23 10:10:56.233 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:56.234 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->getAlpnSelectedProtocol()[B (greylist-max-q, reflection, denied) 04-23 10:10:56.295 9887 11808 E JitsiMeetSDK: [features/base/lib-jitsi-meet] Failed to load config from https://isro-meet.isro.gov.in/config.js?room=test Error(TypeError){“message”:“Network request failed”,“stack”:“onerror@index.android.bundle:137:7285\ndispatchEvent@index.android.bundle:128:5676\nvalue@index.android.bundle:123:6095\nvalue@index.android.bundle:123:2835\nvalue@index.android.bundle:49:1280\nvalue@index.android.bundle:36:3685\nindex.android.bundle:36:841\nvalue@index.android.bundle:36:2939\nvalue@index.android.bundle:36:813\nvalue@[native code]”}
04-23 10:10:56.338 9887 11808 I JitsiMeetSDK: [features/overlay] The conference will be reloaded after 17 seconds.
04-23 10:10:56.338 9887 11808 D JitsiMeetSDK: ExternalAPI Sending event: CONFERENCE_TERMINATED with data: { NativeMap: {“url”:“https://isro-meet.isro.gov.in/test",“error”:"TypeError: Network request failed”} }
04-23 10:10:56.343 9887 9887 D JitsiMeetActivity: Conference terminated: {error=TypeError: Network request failed, url=https://isro-meet.isro.gov.in/test}
04-23 10:10:57.496 9887 11808 I JitsiMeetSDK: [features/base/connection] No connection found while disconnecting.
04-23 10:10:57.541 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied)
04-23 10:10:57.541 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied)
04-23 10:10:57.541 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setUseSessionTickets(Z)V (greylist-max-q, reflection, denied)
04-23 10:10:57.542 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied)
04-23 10:10:57.542 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied)
04-23 10:10:57.542 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q, reflection, denied)
04-23 10:10:57.543 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:57.543 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setAlpnProtocols([B)V (greylist-max-q, reflection, denied) 04-23 10:10:57.572 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:57.572 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->getAlpnSelectedProtocol()[B (greylist-max-q, reflection, denied) 04-23 10:10:57.643 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:57.643 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:57.643 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setUseSessionTickets(Z)V (greylist-max-q, reflection, denied) 04-23 10:10:57.643 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:57.644 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:57.644 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q, reflection, denied) 04-23 10:10:57.644 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:57.644 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setAlpnProtocols([B)V (greylist-max-q, reflection, denied) 04-23 10:10:57.677 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (greylist-max-q,core-platform-api, reflection, denied) 04-23 10:10:57.678 9887 15331 W org.jitsi.meet: Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->getAlpnSelectedProtocol()[B (greylist-max-q, reflection, denied) 04-23 10:10:57.736 9887 11808 E JitsiMeetSDK: [features/base/lib-jitsi-meet] Failed to load config from https://isro-meet.isro.gov.in/config.js Error(TypeError){“message”:“Network request failed”,“stack”:“onerror@index.android.bundle:137:7285\ndispatchEvent@index.android.bundle:128:5676\nvalue@index.android.bundle:123:6095\nvalue@index.android.bundle:123:2835\nvalue@index.android.bundle:49:1280\nvalue@index.android.bundle:36:3685\nindex.android.bundle:36:841\nvalue@index.android.bundle:36:2939\nvalue@index.android.bundle:36:813\nvalue@[native code]”}
04-23 10:10:57.736 9887 11808 W JitsiMeetSDK: [features/app] Failed to load config but there is no room, applying a fake one
04-23 10:10:57.779 9887 11808 D JitsiMeetSDK: [modules/connectivity/NetworkInfo.js] updateNetworkInfo { isOnline: true }
04-23 10:10:57.779 9887 11808 W JitsiMeetSDK: [modules/statistics/AnalyticsAdapter.js] Disposing of analytics adapter.
04-23 10:10:57.789 9887 11808 I JitsiMeetSDK: [features/analytics] Initialized 0 analytics handlers
04-23 10:10:57.789 9887 11808 I JitsiMeetSDK: [features/base/media] Start muted:
04-23 10:10:57.790 9887 11808 D JitsiMeetSDK: ExternalAPI Sending event: AUDIO_MUTED_CHANGED with data: { NativeMap: {“muted”:false} }
04-23 10:10:57.791 9887 11808 D JitsiMeetSDK: ExternalAPI Sending event: VIDEO_MUTED_CHANGED with data: { NativeMap: {“muted”:0} }
04-23 10:10:57.796 9887 11808 I JitsiMeetSDK: [features/base/media] Start audio only set to false
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: [modules/RTC/RTCUtils.js] Available devices: [ { kind: ‘videoinput’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: label: ‘0’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: groupId: ‘’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: deviceId: ‘0’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: facing: ‘environment’ },
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: { kind: ‘videoinput’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: label: ‘1’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: groupId: ‘’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: deviceId: ‘1’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: facing: ‘front’ },
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: { kind: ‘videoinput’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: label: ‘2’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: groupId: ‘’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: deviceId: ‘2’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: facing: ‘environment’ },
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: { kind: ‘videoinput’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: label: ‘3’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: groupId: ‘’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: deviceId: ‘3’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: facing: ‘front’ },
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: { kind: ‘audioinput’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: label: ‘Audio’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: groupId: ‘’,
04-23 10:10:57.802 9887 11808 D JitsiMeetSDK: deviceId: ‘audio-1’ } ]
^C

Just to add, our Jitsi is working fine through Browser and through app in older Android versions.

This is the source of the problem. This can be for 2 reasons: a network problem or a certificate problem.

Network problem is ruled out because meet.jit.si is working fine from Android 11.

Certificate problem is ruled out because browsers and Android 10 (and prior versions) are able to connect.

How do we find the root cause?

I wouldn’t rule it out just yet. Android 10 and 11 might have different system certificate stores, and I’m not sure browsers ship their own.

Does it work properly for you when connecting to meet.jit.si ?

Yes, Jitsi app in Android 11 works properly when meet.jit.si is used. When we use our server, the error as shown here appears:

I can reproduce the problem. It’s very weird because I can’t reproduce it on my own domain, with the same kind of cert: meet.saghul.net. I’ll take a look.

1 Like

Any update?

2 Likes

Not yet, sorry.

@saghul, I am also having same problem. Need urgently, I am finding the solution more than 2 days.

Your domain (and meet.jit.si) doesn’t use (prosody) authentication. Maybe that’s why it is working.

I feel our issue has something to do with prosody certs.

1 Like

same problem, with prosody auth too!

Good pointer. What kind of auth did you enable in your deployiment?

  1. authentication = "internal_plain" was set under section VirtualHost <FQDN> in file /etc/prosody/conf.avail/<FQDN>.cfg.lua

  2. This was followed by creating prosody user as follows:
    sudo prosodyctl register <username> <FQDN> <password>

  3. Under the same VirtualHost section, the following block is present:

    ssl = { 
           key = "/etc/prosody/certs/<FQDN>.key";
           certificate = "/etc/prosody/certs/<FQDN>.crt"; 
   }

However, the above prosody cert appears to be self-signed cert generated during Jitsi installation and doesn’t get renewed automatically by Let’s Encrypt certbot. I’ve read somewhere here in one of the other thread that this certificate isn’t presented to users therefore renewal isn’t critical.

1 Like

That’s correct.

@samueljohnson

I solved this problem.

Solution is

  1. Please remove this file /etc/nginx/modules-enabled/60-jitsi-meet.conf
  2. Change the nginx config file /etc/nginx/sites-available/you-domain.conf - change the port no to 443 instead of 4444.
1 Like

thats not a solution for our deployment…

This solution is solved my problem. if not for you tell me the your problem will help on this.