RocketChat / Rocket.Chat

The communications platform that puts data protection first.
https://rocket.chat/
Other
40.48k stars 10.55k forks source link

Blank screen on mobile clients #9270

Closed alternative4 closed 6 years ago

alternative4 commented 6 years ago

Getting trouble while getting access to Rocket Chat from mobile clients. After I enter server URL it goes "Connecting - Downloading" and then just blank screen (first login).

Behaviour slightly differs between mobile clients (newly installed, no user data): Android Rocket.Chat: Enter server name -> Validating... -> Downloading -> Finished download ->White screen Android Rocket.Chat+: Server name -> Invalid server version Android Rocket.Chat ReactNative: Server name -> valid Rocket.Chat server ->, no popup login screen (no further actions).

Actually almost all behaviour boils to unabilty to display logon screen. Web-browsers (Chrome for Android or PC) works OK on the same URL from the same devices. Windows client also works OK.

Tried with or without assets - same blank screen result.

Server log at the moment of blank screen: 34mI20171228-15:56:58.942(3) rocketchat_logger rocketchat_logger.js:278 Meteor ➔ publish null -> userId: null , arguments: {} and nothing else.

pedroarinto commented 6 years ago

We are experiencing exactly the same problem with 0.60.0 on Android devices. Web version works, as well as Mac and Windows Desktop clients.

robertwessen commented 6 years ago

Same issue here, happened immediately following 0.60.1 upgrade for us. Tried clearing application cache and complete re-install of mobile Rocket.Chat clients with same result.

From the Android mobile Rocket.Chat client, this is the last error message seen via adb logcat when the blank screen appears: 12-28 13:17:39.747 1722 1722 I chromium: [INFO:CONSOLE(21)] "Uncaught ReferenceError: WebAppLocalServer is not defined", source: http://httpsREDACTED.meteor.local/e719e16434b26a9f06c7ae4cbc0e643e5e4f9378.js?meteor_js_resource=true (21)

where REDACTED is the fqdn of our chat server without any dots, like "fullyqualifieddomaincom" there are a number of similar errors in the log above as well.

TomaszDom commented 6 years ago

....so not a single Android app works with the latest "stable" version of Rocket.Chat? @rodrigok ?

rodrigok commented 6 years ago

@TomaszDom The native apps should work, did you try the Rocket.Chat+ app?

rodrigok commented 6 years ago

We are investigating why this error is happening, hope we will have a fix tomorrow

ledainam commented 6 years ago

Rocketchat++ not fully function like Rocketchat @rodrigok Notification slowly than Rocketchat.

alternative4 commented 6 years ago

@rodrigok Rocket.Chat+ returns "Invalid server version" error.

TomaszDom commented 6 years ago

@rodrigok I had to clear app data and cache of Rocket.Chat+ 1.0.33 to make it work. #9270

@alternative4 Are you sure you're trying "Rocket.Chat+" and not the ReactNative version? Because the ReactNative version didn't work for me with 0.58.0 and it still doesn't with 0.60.1 with the same "Invalid server version" message. Are you perhaps running Rocket.Chat behind Nginx or Apache?

alternative4 commented 6 years ago

@TomaszDom Yes, Rocket.Chat+behind Apache ReverseProxy. Rocket.Chat+ mobile does not support ReverseProxy? Windows PC client does.

TomaszDom commented 6 years ago

@alternative4 It may be unrelated, but take a look at what I had to do to make Rocket.Chat+ work when Nginx load balancing/reverse proxy is involved https://github.com/RocketChat/Rocket.Chat.Android/issues/375

Make sure you are using "Rocket.Chat+", not "Rocket.Chat" application and make sure you cleared application data and cache.

alternative4 commented 6 years ago

@TomaszDom Thanks, I'll give it a try.

slyk commented 6 years ago

Got same problem on all our Android devices :(

rodrigok commented 6 years ago

@slyk we are working to release a new Android version ASAP, the problem was related with new JS features not supported by current webview version. Meanwhile you can use the native apps Rocket.Chat+

ghost commented 6 years ago

Well. I'm using the rocketchat+ client and have the very same problem. Cannot connect to 0.60.x server.

TomaszDom commented 6 years ago

@himbeere is your server running behind a reverse proxy? Try allowing unencrypted connections on port 80 to /websocket and /api/info locations instead of redirecting all traffic to https at port 443. That's what I had to do to make "Rocket.Chat+" work back in September with Nginx. https://github.com/RocketChat/Rocket.Chat.Android/issues/375#issuecomment-329981458

rasos commented 6 years ago

Also fairchat App works against RC 0.60.1 - you may give it a try https://play.google.com/store/apps/details?id=com.osalliance.rocketchatMobile

ghost commented 6 years ago

Fairchat does not work for me either. Also i'm using apache so the nginx problem should not apply to me.

Is someone working on this problem right now? I'm stuck with version 0.59.x for now.

cheers t.

TomaszDom commented 6 years ago

@himbeere just because you don't use Nginx doesn't mean it isn't the same problem.

What I suggest you do is run mitmproxy between your phone and the server, see the traffic for yourself and compare between a working installation and one that doesn't work with Rocket.Chat+.

BTW, Fairchat doesn't work for me either (as well as the ReactNative app which tells me I don't have a valid server...).

ghost commented 6 years ago

Yes. Next step would be to run tcpdump or the like to see what's happening. But i thought the rocketchat team would spare me that hassle. :)

cheers t.

geekgonecrazy commented 6 years ago

Typically if Rocket.Chat+ doesn't work it's one of two things.

  1. You aren't using ssl. The iOS version requires it. Or if you are using ssl you are using self signed. There are ssl test websites that will tell you.
  2. Your reverse proxy (nginx or apache) is not properly configured to handle upgrade of websocket. More often then not it's actually apache users I see with this problem. Nginx ships with websocket support in all later versions.

The documentation for setting up nginx and apache in our docs should show how to do it and have websocket working.

ghost commented 6 years ago

@geekgonecrazy I guess the real problem is all of us had a working setup and that broke with updating to 0.60.0. So it would be interesting what exactly broke the setup.

geekgonecrazy commented 6 years ago

Understood. The legacy Cordova app I believe has a fix in the beta channel. I believe something to do with some Android devices not having high enough version of webview.. so having to push out new version of app with updated baked in webview. 0.60.0 uses newer javascript language features.

I'm simply explaining to those that are trying the Rocket.Chat+ app and having issues.

rasos commented 6 years ago

@himbeere @TomaszDom as the fairchat App did not work for you either, maybe you can report on an extra issue here and tell us what your problem was: https://git.fairkom.net/chat/fairchat/issues

robertwessen commented 6 years ago

I think there are several issues going on in here which I hope doesn't muddy the response. To add more info from my org's own internal troubleshooting.

1) Android 8.1+ (possibly 8+?) works with the cordova based Android Rocket.Chat after the server is upgraded to 0.60+, anything lower does not. Based on Google numbers from last month, this means less than 1% of Android users can currently use the Cordova app.

2) Android RocketChat+ handles TLS/x509 certificate validation differently than Android Rocket.Chat and will try to fall back to HTTP when it fails. On the same device, the Cordova based app will accept the cert, RocketChat+ will not. We have an internal CA which signs our rocket.chat cert, and is installed on all devices as a trusted root. While we need to do more troubleshooting here to figure out why, this cert is ok in browsers and the Cordova app, but the RocketChat+ client reports it is invalid. (I suspect subjectaltname validation changes, but haven't confirmed)

This means in some cases large portions of Android users are simply out of luck after upgrading to 0.60.0 or higher. I think it would be helpful to separate these cases out so they don't get confused or something missed after any one issue is addressed.

rodrigok commented 6 years ago

I just released a new version of our cordova app, can you upgrade (new version is 2.6.0) and test it?

ledainam commented 6 years ago

It is working now @rodrigok. Thanks you.

robertwessen commented 6 years ago

2.6.0 works here as well, thanks @rodrigok

danielmorlock commented 6 years ago

Can somebody briefly explain: What is the cordova app and how is it related with rocket?

slyk commented 6 years ago

@rodrigok thanks for fast reaction. All works again.

@danielmorlock "cordova" is the app without plus sign at play store. Its official (I think) :) there is no "cordova" word in title, its just name of wrapping technology to create app from HTML.

rodrigok commented 6 years ago

@danielmorlock Cordova is the name of the technology we used to create the Rocket.Chat app, it's basically a browser view adding some native features like push notifications and access to the camera, it downloads a mobile version of the Rocket.Chat server and keeps in cache to prevent waste your bandwidth every time you open the app.

We have the + apps, Rocket.Chat+, they are native, it means they was developed using native technologies to be fast and battery efficient, but since they need to be developed from scratch 2 times (one for iOS and other for Android) we have some lack of features at this moment, the Cordova app have all the feature cuz it's basically a browser web view that downloads the web version containing all the features.

danielmorlock commented 6 years ago

Thanks @slyk and @rodrigok.

alternative4 commented 6 years ago

It works on Cordova app. Thanks!

junlicn commented 6 years ago

same problem with server as cloud trial : mobile client version 2.4 : android-armv7-release.apk

after connecting to the server, then blank.
I set up server today, it means the latest server and latest mobile client.