Pydio install debian buster websocket timeout error

I just installed pydio on a public server. I had tested this on a local server and everything seemed fine and working.
This installation was on a Debian 10 buster. I have this on a VM behind iptables but have configured nat to accept and pass port 8081, which is the port I used.

This machine does serve many domains using virtualmin.

I had a lot of issues getting is going, however after I flushed the DB, cleared the files in /var/cells/services and re-ran cells configure to use with self-signed certs

| # |       BIND(S)        |        TLS         |         EXTERNAL URL          |
| 0 | | Self-Signed | |

I can now access the GUI, either through apache reverse proxy with default explained here by, and by

However now I am getting a websocket error.

CONNECTION ISSUE: Websocket seems t obe disconnected, please make sure that the server is up and websocket connection is working

The bottom of the GUI also gives

Unsuccessful HTTP response

Web Console gives this

WebSocket connection to ‘wss://’ failed
WebSocket Closed Connection:The connection was closed abnormally, e.g., without sending or receiving a Close control frame (code 1006)

What I find strange is I have mattermost and RocketChat working on this server, both using websockets and they are working fine. So there must be some kind of config issues.

any ideas?

as for logs
journalctl -fu cells -S -1h is pretty clean

Apr 14 13:18:32 cells[9995]: 2022-04-14T13:18:32.429-0400        ERROR        Could not prepare start         {"error": "timeout"}
Apr 14 13:18:33 cells[9995]: 2022-04-14T13:18:33.208-0400        ERROR        pydio.gateway.websocket        Could not prepare start         {"error": "timeout"}

Hi, very probably an issue with the reverse-proxy and the websocket forwarding. Did you check how you configured apache for the other apps (mattermost/rocketchat) ?


I tried playing with the rocket chat websockets strings, but got nothing out of it.

the web console also gives me:

WebSocket connection to ‘wss://’ failed:
WebSocket Closed Connection:The connection was closed abnormally, e.g., without sending or receiving a Close control frame (code 1006)
VM1611:1 POST 500
Error: Unsuccessful HTTP response
at Request.eval (eval at (starting.html:1:1), :1:3614697)
at Request.Emitter.emit (eval at (starting.html:1:1), :1:3398540)
at XMLHttpRequest.xhr.onreadystatechange (eval at (starting.html:1:1), :1:3619224)

Here is what I have configured in case there is something someone can catch that I cannot
( I’ve removed the domains, please excuse any typos )

rocket chat

<VirtualHost *:443>
    SuexecUserGroup "#1010" "#1007"
    DocumentRoot ../
    ErrorLog ../
    CustomLog ../ combined

        #       rocket chat
        RewriteEngine On
        RewriteCond %{HTTP:Upgrade} =websocket [NC]
        RewriteRule /(.*) wss://localhost:3000/$1 [P,L]
        RewriteCond %{HTTP:Upgrade} !=websocket [NC]
        RewriteRule /(.*) http://localhost:3000/$1 [P,L]

        ProxyPassReverse /           http://localhost:3000/

        SSLCertificateFile /etc/letsencrypt/live/
        SSLCertificateKeyFile /etc/letsencrypt/live/
        SSLCertificateChainFile /etc/letsencrypt/live/



        ProxyPreserveHost On

        # Set web sockets
        RewriteEngine On
        RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC]
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} \bUpgrade\b [NC]
        RewriteRule .* ws://{REQUEST_URI} [P,QSA,L]

        <Location />
                Require all granted

        SSLCertificateFile /etc/letsencrypt/live/
        SSLCertificateKeyFile /etc/letsencrypt/live/
        SSLCertificateChainFile /etc/letsencrypt/live/

Pydio config

<VirtualHost *:443>
    AllowEncodedSlashes On
    RewriteEngine On
    SSLProxyEngine On
        #       This needed to be added because the certificates common name did not match the server name
        #       This was for error apache AH01084: pass request body failed, in browser showed 'Reason: Error during SSL Handshake with remote server' 
        SSLProxyCheckPeerCN off

    ## The order of the directives matters.
    # If Cells is not running with https, consider using ws instead of wss
    ProxyPassMatch "/ws/(.*)" ws://localhost:8081/ws/$1 nocanon

    ## This rewrite condition is required if using Cells-Sync
    RewriteCond %{HTTP:Content-Type} =application/grpc [NC]
    RewriteRule /(.*) h2://localhost:8081/$1 [P,L]

    ProxyPass "/" "https://localhost:8081/"
    ProxyPassReverse "/" "https://localhost:8081/"

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined