[BUG] Android version don't lets you enable self-signed SSL certificates #1717

Closed
opened 2026-02-05 03:19:45 +03:00 by OVERLORD · 7 comments
Owner

Originally created by @br4yd on GitHub (Dec 3, 2023).

The bug

It is not possible to toggle the switch in the app settings on Android to allow self-signed SSL certificates, which makes it impossible to login to the instance for some setups where a signed SSL certificate is not possible on the server side.

The OS that Immich Server is running on

Synology DSM 7.2-64570 Update 1 (Container Manager)

Version of Immich Server

v1.89.0

Version of Immich Mobile App

v1.89.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

version: "3.8"

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: ["start.sh", "immich"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 3001:3001
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.yml
    #   service: hwaccel
    command: ["start.sh", "microservices"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - ./model-cache:/cache
    env_file:
      - .env
    restart: always

  typesense:
    container_name: immich_typesense
    image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
    environment:
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_DATA_DIR=/data
      # remove this to get debug messages
      - GLOG_minloglevel=1
    volumes:
      - ./tsdata:/data
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
    restart: always

  database:
    container_name: immich_postgres
    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    restart: always

Your .env content

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=v1.89.0

# Connection secrets for postgres and typesense. You should change these to random passwords
TYPESENSE_API_KEY=some-random-text
DB_PASSWORD=XXX

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=XXX
DB_DATABASE_NAME=immich

REDIS_HOSTNAME=immich_redis

Reproduction steps

1. Open the mobile app on Android
2. Click on the settings gear
3. Scroll down to the last main category and expand it ("Sonstige" in German)
4. Try to enable self-signed SSL certificates. Trying to enable it does nothing or instantly disables it

Additional information

No response

Originally created by @br4yd on GitHub (Dec 3, 2023). ### The bug It is not possible to toggle the switch in the app settings on Android to allow self-signed SSL certificates, which makes it impossible to login to the instance for some setups where a signed SSL certificate is not possible on the server side. ### The OS that Immich Server is running on Synology DSM 7.2-64570 Update 1 (Container Manager) ### Version of Immich Server v1.89.0 ### Version of Immich Mobile App v1.89.0 ### Platform with the issue - [ ] Server - [ ] Web - [X] Mobile ### Your docker-compose.yml content ```YAML version: "3.8" services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: ["start.sh", "immich"] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env ports: - 3001:3001 depends_on: - redis - database - typesense restart: always immich-microservices: container_name: immich_microservices image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # extends: # file: hwaccel.yml # service: hwaccel command: ["start.sh", "microservices"] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env depends_on: - redis - database - typesense restart: always immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - ./model-cache:/cache env_file: - .env restart: always typesense: container_name: immich_typesense image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd environment: - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - TYPESENSE_DATA_DIR=/data # remove this to get debug messages - GLOG_minloglevel=1 volumes: - ./tsdata:/data restart: always redis: container_name: immich_redis image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 restart: always database: container_name: immich_postgres image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - ./pgdata:/var/lib/postgresql/data restart: always ``` ### Your .env content ```Shell # You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables # The location where your uploaded files are stored UPLOAD_LOCATION=./library # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=v1.89.0 # Connection secrets for postgres and typesense. You should change these to random passwords TYPESENSE_API_KEY=some-random-text DB_PASSWORD=XXX # The values below this line do not need to be changed ################################################################################### DB_HOSTNAME=immich_postgres DB_USERNAME=XXX DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis ``` ### Reproduction steps ```bash 1. Open the mobile app on Android 2. Click on the settings gear 3. Scroll down to the last main category and expand it ("Sonstige" in German) 4. Try to enable self-signed SSL certificates. Trying to enable it does nothing or instantly disables it ``` ### Additional information _No response_
Author
Owner

@shenlong-tanwen commented on GitHub (Dec 5, 2023):

Can you try reinstalling the app and check if you can toggle the button then? It can be toggled only before logging in.

@shenlong-tanwen commented on GitHub (Dec 5, 2023): Can you try reinstalling the app and check if you can toggle the button then? It can be toggled only before logging in.
Author
Owner

@br4yd commented on GitHub (Dec 7, 2023):

Tried reinstalling the app but no I still can't toggle it.

Edit: Worked after cleaning cache and user data. However IMO you should be able to toggle this setting even without doing this. It doesn't make sense from a UX perspective to make it impossible to toggle that setting without reinstalling the app. Especially because the toggle is showed as "I'm toggable".

@br4yd commented on GitHub (Dec 7, 2023): Tried reinstalling the app but no I still can't toggle it. **Edit:** Worked after cleaning cache and user data. However IMO you should be able to toggle this setting even without doing this. It doesn't make sense from a UX perspective to make it impossible to toggle that setting without reinstalling the app. Especially because the toggle is showed as "I'm toggable".
Author
Owner

@NextBlaubeere commented on GitHub (Feb 8, 2024):

I was also effected by this bug, because I changed internal domain name.

@NextBlaubeere commented on GitHub (Feb 8, 2024): I was also effected by this bug, because I changed internal domain name.
Author
Owner

@veritas06 commented on GitHub (Mar 21, 2024):

The iOS app v.1.99.0 has the same issue.

@veritas06 commented on GitHub (Mar 21, 2024): The iOS app v.1.99.0 has the same issue.
Author
Owner

@BoreasMun commented on GitHub (Mar 23, 2024):

Reinstalled the app, somehow managed to switch on this toggle, but error still persist.

Error toast message:
There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.

Error log:
Failed to resolve endpoint. HandshakeException: Handshake error in client (OS Error: TLSV1_ALERT_ACCESS_DENIED(tls_record.cc:592)

Android v1.99.0

@BoreasMun commented on GitHub (Mar 23, 2024): Reinstalled the app, somehow managed to switch on this toggle, but error still persist. Error toast message: `There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.` Error log: `Failed to resolve endpoint. HandshakeException: Handshake error in client (OS Error: TLSV1_ALERT_ACCESS_DENIED(tls_record.cc:592)` Android v1.99.0
Author
Owner

@jfly commented on GitHub (Jul 1, 2025):

I'm experiencing the same issue described above by @br4ydv: logging out of immich isn't enough to enable this toggle, I need to clear cache and user storage as well. This is pretty much impossible to figure out until you stumble on this thread.

IMO, this should either be enabled, or at least include an in-app explanation for why it's disabled.

@jfly commented on GitHub (Jul 1, 2025): I'm experiencing the same issue described above by @br4ydv: logging out of immich isn't enough to enable this toggle, I need to clear cache and user storage as well. This is pretty much impossible to figure out until you stumble on this thread. IMO, this should either be enabled, or at least include an in-app explanation for why it's disabled.
Author
Owner

@darunohito commented on GitHub (Oct 21, 2025):

Might be an odd workaround that doesn't require clearing the cache/storage. I'm not sure if it's repeatable yet.

  1. Log out of the app
  2. Check the Advanced Settings; if the option to enable self-signed certs is greyed out, close out of the app fully (I just had to swipe it off to exit)
  3. Reopen the app and open the settings. The button magically unlocked, for whatever reason.

Perhaps the app cache remembers that it's connected to an http endpoint and doesn't allow you to enable the cert option until the cache is cleared? Not sure.

@darunohito commented on GitHub (Oct 21, 2025): Might be an odd workaround that doesn't require clearing the cache/storage. I'm not sure if it's repeatable yet. 1. Log out of the app 2. Check the Advanced Settings; if the option to enable self-signed certs is greyed out, close out of the app fully (I just had to swipe it off to exit) 3. Reopen the app and open the settings. The button magically unlocked, for whatever reason. Perhaps the app cache remembers that it's connected to an http endpoint and doesn't allow you to enable the cert option until the cache is cleared? Not sure.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#1717