What is the cause of the "No connection to the survey solutions supervisor. Please make sure that the website is available" error?

Hello all,

As per title, I am trying to debug the source of the quoted error. I am running a local installation of Survey Solutions v.23.9.4 on docker.

I have looked into similar forum threads, I also checked the “Synchronization problems” page but I still can’t find what the issue is.

Server setup

The client does not want to move the server to the cloud and wants to use its own infrastructure. The server is a local Ubuntu server sitting behind some reverse proxy which manages the firewall and the ssl certificates. I do not have access to this proxy, it is managed by somebody else. The network admin says that ports 80 and 443 are fully open.

On the server itself Survey Solutions is running in docker with traefik. The current dockerfile configuration is:

version: '3'
services:
  hq:
    environment:
      HQ_Headquarters__BaseUrl: https://${HQ_HOST}
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.hq.rule=Host(`${HQ_HOST}`)"
      - "traefik.http.routers.hq.entrypoints=web"
      - "traefik.http.middlewares.hq-https-redirect.headers.customrequestheaders.X-Forwarded-Proto=https"
      - "traefik.http.routers.hq.middlewares=hq-https-redirect"
      - "traefik.http.services.hq.loadbalancer.server.port=80" 
  traefik:
    image: "traefik:v3.0"
    command:
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.forwardedHeaders.insecure=true"
    networks:
      - suso_frontend_network
    volumes:
    - "/var/run/docker.sock:/var/run/docker.sock:ro"
    restart: always
    ports:
      - "443:443"
      - "80:80"

Since ssl is managed elsewhere I excluded the letsencrypt config here. I added header forwarding because otherwise the server tells me that it is running on http while the url says https. Hq is launched with

version: '3'
services:
  hq:
    image: 'surveysolutions/surveysolutions:23.9.4'
    environment:
      HQ_ConnectionStrings__DefaultConnection: 'Server=db;Port=5432;User Id=postgres;Password=${DB_PASSWORD};Database=SurveySolutions'
      HQ_Headquarters__BaseUrl: http://${HQ_HOST}
    networks:
      - suso_frontend_network
    volumes:
      - /srv/hq/hq_data/app:/app/AppData
      - /srv/hq/hq_data/log:/logs
    restart: always
networks:
  suso_frontend_network:
    external: true

Current status

The above configuration yields a working server that can be reached by web by https, is all green in the diagnose panel, can import questionnaires from the designer, no warnings about certificates in the browser. But when I try to connect the interviewer app (Android 13) it gives me the error in the title. Another colleague tried to connect with another android device but with same result.

I have:

  • Checked ports 80 and 443 using online tools to be reachable and they are.
  • Tried installing possible missing root certificates for the ssl in question on my android device but this did not solve the issue.
  • Tried configuring and connecting through http but the reverse proxy redirects to https it seems, in any case the issue stayed.
  • Checked if the root certificate has expired somehow but all looks ok.

Do you see any mistakes in the traefik/Survey Solutions configuration? What might be the source of the above error?

Exclude typos, scan barcode for user profile or download page in the app.
Check validity of BaseUrl.
Check validity of certificate:

  1. Open https://www.ssllabs.com
  2. Run test
  3. Check chain for Android

Check correctness time setup on device (date, time and timezone)
Check that browser on device correctly opens your server address.

Thank you vitali.

  • I downloaded interviewer app from server and used the user qr to configure it
  • Checked that base url is valid. Tried both http and https. Checked that diagnose panel is green in SuSo.
  • Checked certificate and Android chain. Here There are some issues:



    There is also long list of warnings about cipher suites being weak as well, some handshakes on IE8 and Java failing.
  • Checked correctness of date and timezone for both server and android device, adjusted server and ran tests again with no result
  • Checked that the android device browser correctly opens the server address.

Do you think the issues with the certificate are likely the source of my problem, or is it something else?

https://really-simple-ssl.com/ssl-working-desktop-not-mobile-android-devices/

Thank you sergiy. I have no means to check whether this actually solves the problem but will mark this as the solution. If I have updates in the future I will post them here.

Have a nice day!

You could try to connect your tablets to a server that doesn’t have this broken certificate chain problem and if they communicate successfully that should support this as the reason.