Zammad 6.0 Mobile client issues

thanks. but it is actually “zammad run …” , thanks to @icecoffee
and these setting are ok.

That entirely depends on your installation type as you know. :slight_smile:
So the answer technically wasn’t incorrect.

Please double tab that to ensure it’s not your proxy.

Is that Microsoft application proxy also web socket aware? Websockets are mandatory on that interface.

Zammad wouldn’t start / function without it unless one would use the environment variable which is discoraged.

@MrGeneration we just checked, inside LAN mobile client works.
Can you be so kind and tell, how can i check WAP for websocket support?

No sorry - I can’t help you with third party proxies.

@MrGeneration last question: With MS WAP in path, are we safe with desktop client? Or there is some functionality in Zamamd 6 desktop client, what also use websockets?

I can’t see other errors.
I updated my apache config according to the update notes with
“ProxyPass /cable ws://127.0.0.1:3000/cable”

:white_check_mark: solved by Issues on Mobile webapp [Zammad 6.0]

WebSocket support in Azure Application Gateway | Microsoft Learn

unfortunately, we run on premises, and does not have cloud-based software features.

Thanks for the hint @voljka about the difference internal/external access. I accessed our onprem zammad via Split DNS internally directly and the issue is gone, therefore is must have something todo with our external ReverseProxy. I will contact our firewall vendor but if somebody would have an idea where I could find useful logs for them feel free to give me a hint.

The desktop view is using a websocket connection as well, yes. There is a fallback to AJAX mode, but I don’t encourage the usage of it.

Thanks. Then it is time to leave MS WAP and publish Nginx to the Internet.

1 Like

Thank you! Adding the action cable lines to the nginx files and restarting nginx solved my problem. I love the new mobile version.

1 Like

Hi. Same problem here, and I cant to solve it.

I’ve checked Redis (ping), and vars http_type and fqdn. All correct

Also my apache conf:

ServerTokens Prod

<VirtualHost *:80>
    # replace 'localhost' with your fqdn if you want to use zammad from remote
    ServerName ***.***.com

    ## don't loose time with IP address lookups
    HostnameLookups Off

    ## needed for named virtual hosts
    UseCanonicalName Off

    ## configures the footer on server-generated documents
    ServerSignature Off

    ProxyRequests Off
    ProxyPreserveHost On

    <Proxy 127.0.0.1:3000>
        Require local
    </Proxy>
    ProxyPass /assets !
    ProxyPass /favicon.ico !
    ProxyPass /apple-touch-icon.png !
    ProxyPass /robots.txt !
    # legacy web socket server
    ProxyPass /ws ws://127.0.0.1:6042/
    # action cable
    ProxyPass /cable ws://127.0.0.1:3000/cable
    ProxyPass / http://127.0.0.1:3000/

    # change this line in an SSO setup
    RequestHeader unset X-Forwarded-User

    DocumentRoot "/opt/zammad/public"

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory "/opt/zammad/public">
        Options FollowSymLinks
        Require all granted
    </Directory>

</VirtualHost>

My ngynx.conf:

#
# this is the nginx config for zammad
#

upstream zammad-railsserver {
    server 127.0.0.1:3000;
}

upstream zammad-websocket {
    server 127.0.0.1:6042;
}

server {
    listen 80;
    listen [::]:80;

    # replace 'localhost' with your fqdn if you want to use zammad from remote
    server_name ***.***.com;

    # security - prevent information disclosure about server version
    server_tokens off;

    root /opt/zammad/public;

    access_log /var/log/nginx/zammad.access.log;
    error_log  /var/log/nginx/zammad.error.log;
    client_max_body_size 50M;

    location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico|apple-touch-icon.png) {
        expires max;
    }

    # legacy web socket server
    location /ws {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 86400;
        proxy_pass http://zammad-websocket;
    }

    # action cable
    location /cable {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 86400;
        proxy_pass http://zammad-railsserver;
    }

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Change this line in an SSO setup
        proxy_set_header X-Forwarded-User "";

        proxy_read_timeout 300;
        proxy_pass http://zammad-railsserver;

        gzip on;
        gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript applicati>        gzip_proxied any;
    }
}

I dind’t find where was error for didn’t reach WSS

WebSocket connection to ‘wss://..com/cable’ failed

Can you help me?

Please state clearly, what exactly is your problem.
Are you talking only about problem with Mobile Zammad web-interface?
Regular desktop site are ok?

yeah, regular desktop work fine, only mobile version get an error when try to conect websocket

Please scroll up in this thread and note the following crucial configuration settings and requirements that you need to fulfill. I’m right now guessing that the latter one is not fulfilled at all.

I’m also having the problem, that the websocket for localhost:3000/cable is not reachable. I tried different ProxyPass-Parameters without success. http_type is set to https. Setting to http does not matter, the problem exists.

I have installed wscat on my zammad server, to see if the communication works locally. I can access ws://localhost:6042 without any problems. When i run wscat against ws://localhost:3000/cable i got a 404 error. This also happens, if i stop my apache.

On port 6042 there is the websocket-server.rb script listening, on port 3000 there is listening a process called puma.

1 Like

It’s first what i have checked.

Any clue what i can check?

You posted both apache and nginx configurations.
Maybe you should get clear what you actually are using.

When I checked your noted URL a nginx server was answering.
Your vhost is set to HTTP but I’ve been talking to a https note. Whatever you’re doing is not the default setup and looks like a fuckup in your vhost proxy setup.

I was making changes on both, triyng to solve it, but i think that there using nginx.

A coworker of mine made this install on a clean ubuntu LTSC.

Can you give me any link to a proxy setup help page? Or what i can look for to detemine what is malfuncioning?