Login with iOS app returns a "protocol error"


(Stefan Bucher) #1

I want to use the iOS app on my iPhone 6 (iOS 11.2.5).

I get an error (see picture below) whatever user I try to login with, even with anonymous.

On my site I run SSL with Let’s Encrypt. My hosting provider checked the SSL settings, it is ok.

Login with the mobile browser Safari on iOS works fine, so I assume the issue is not with the user credentials or permissions.

The error logs on the server record no entries after the login attempt.

Thanks für any help.

Regards.


#2

It works on Android but can confirm the problem on iOS. I debugged it and the error message I am getting is The operation couldn’t be completed. Protocol error with a code of 100. The HTTP status code seems to be zero so it might have not even sent the request properly.

I did some research but couldn’t find much. Do you know if you are using HTTP2?

As the HTTP API is implemented by the underlying framework (Appcelerator Platform - Appcelerator Docs) we can’t really do much here. Tried various things already like trying to play with keep alive and other settings.


(Lukas Winkler) #3

The server is using HTTP/2, but that shouldn’t be the issue as it’s working fine for me with iOS and Android.

What’s odd is that your server always sends a gzip-ed response even if the client doesn’t request it (With the Content-Encoding header)

➜  ~ curl https://sogesehen.ch/alytcs/index.php    
Warning: Binary output can mess up your terminal. Use "--output -" to tell 
Warning: curl to output it to your terminal anyway, or consider "--output 
Warning: <FILE>" to save to a file.
➜  ~ curl https://sogesehen.ch/alytcs/index.php  --output test
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 11200    0 11200    0     0  37837      0 --:--:-- --:--:-- --:--:-- 37966
➜  ~ file test
test: gzip compressed data, from Unix

Your webserver seems to support QUIC, which is really uncommon yet. (QUIC - Wikipedia)
Which webserver are you using?


(Stefan Bucher) #4

Thanks for your reply.
I report this back to my hosting provider.
I hope with their additional information we can figure this out.


(Stefan Bucher) #5

My hosting provider replied:

It’s a LiteSpeed web server, it does support QUIC, and it serves GZIP-ed responses in order to increase the speed of the websites.

So, is it fair to say that the Matomo iOS app doesn’t support LiteSpeed yet?


(Lukas Winkler) #6

Hi,

Thanks for the research!

Im not sure if thats the fact. After all HTTP is a standard, so neither server nor client should matter.

Serving GZIP-ed responses is normal and most HTTP server do it. But normaly the response is gziped if the client requests it.

But I am not sure if that’s the issue. The App also recieves Gziped responses from my server without issues.

UPDATE:

Something else, that’s odd, but shouldn’t cause an issue:
When I try to access https://sogesehen.ch/gibtesnicht/it doesn’t return 404 not found, but redirects the user to https://sogesehen.ch/error/404/ which exists. This doesn’t really matter, but could cause you odd errors in the future as e.g. search engines think that’s a real page.


(Lukas Winkler) #7

I just tried out what happens, when I try to add your Matomo instance in the iOS app.
Strangely it works fine for me (also iOS 11.2.5; latest Matomo app). I get the normal Password incorrect message.