[BUG] The Android app discovers all media on the device and can't be filtered #1506

Closed
opened 2026-02-05 02:08:30 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @michaelnew on GitHub (Oct 24, 2023).

The bug

Somewhat elated to this issue. I ran the app for the first time, granted it storage access, and it populated my photo feed with thousands of garbage images from random folders on the device. I really just want it to access the camera and maybe the screenshots folder, but instead it's finding everything.

In my case I have ebooks on the device (which have lots of tiny little illustrations and whatnot), plus music with album art and so on. Being able to exclude certain folders or only include particular ones would solve the issue.

The service is fantastic otherwise; very impressed.

The OS that Immich Server is running on

Arch

Version of Immich Server

1.82.1

Version of Immich Mobile App

1.82.0 - 106

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
    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

  immich-web:
    container_name: immich_web
    image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
    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

  immich-proxy:
    container_name: immich_proxy
    image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
    environment:
      # Make sure these values get passed through from the env file
      - IMMICH_SERVER_URL
      - IMMICH_WEB_URL
    ports:
      - 2283:8080
    depends_on:
      - immich-server
      - immich-web
    restart: always

volumes:
  pgdata:
  model-cache:
  tsdata:

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=/mnt/media/immich-data

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

# Connection secrets for postgres and typesense. You should change these to random passwords
TYPESENSE_API_KEY=<hidden>
DB_PASSWORD=<hidden>

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

REDIS_HOSTNAME=immich_redis

Reproduction steps

1. Open the Android app and grant it storage access
2. Have folders on the device containing images you don't care about (ebooks with illustrations, album art, games with image assets, etc.)
3. Observe that all those junk images appear in the photo feed and they can't be filtered out.

Additional information

No response

Originally created by @michaelnew on GitHub (Oct 24, 2023). ### The bug Somewhat elated to [this issue](https://github.com/immich-app/immich/issues/1905). I ran the app for the first time, granted it storage access, and it populated my photo feed with thousands of garbage images from random folders on the device. I really just want it to access the camera and maybe the screenshots folder, but instead it's finding everything. In my case I have ebooks on the device (which have lots of tiny little illustrations and whatnot), plus music with album art and so on. Being able to exclude certain folders or only include particular ones would solve the issue. The service is fantastic otherwise; very impressed. ### The OS that Immich Server is running on Arch ### Version of Immich Server 1.82.1 ### Version of Immich Mobile App 1.82.0 - 106 ### 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 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 immich-web: container_name: immich_web image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release} 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 immich-proxy: container_name: immich_proxy image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release} environment: # Make sure these values get passed through from the env file - IMMICH_SERVER_URL - IMMICH_WEB_URL ports: - 2283:8080 depends_on: - immich-server - immich-web restart: always volumes: pgdata: model-cache: tsdata: ``` ### 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=/mnt/media/immich-data # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=release # Connection secrets for postgres and typesense. You should change these to random passwords TYPESENSE_API_KEY=<hidden> DB_PASSWORD=<hidden> # The values below this line do not need to be changed ################################################################################### DB_HOSTNAME=immich_postgres DB_USERNAME=postgres DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis ``` ### Reproduction steps ```bash 1. Open the Android app and grant it storage access 2. Have folders on the device containing images you don't care about (ebooks with illustrations, album art, games with image assets, etc.) 3. Observe that all those junk images appear in the photo feed and they can't be filtered out. ``` ### Additional information _No response_
Author
Owner

@alextran1502 commented on GitHub (Oct 24, 2023):

In my case I have ebooks on the device (which have lots of tiny little illustrations and whatnot), plus music with album art and so on. Being able to exclude certain folders or only include particular ones would solve the issue.

You can already include/exclude in the album selection for upload in the upload page

@alextran1502 commented on GitHub (Oct 24, 2023): > In my case I have ebooks on the device (which have lots of tiny little illustrations and whatnot), plus music with album art and so on. Being able to exclude certain folders or only include particular ones would solve the issue. You can already include/exclude in the album selection for upload in the upload page
Author
Owner

@michaelnew commented on GitHub (Oct 25, 2023):

@alextran1502 Huh, okay I guess that does work, thank you. It feels a bit unintuitive to me; I assumed that would just filter the uploads to the server since it's called "albums to be backed up". I didn't expect them to be hidden from the app entirely.

I feel like the wording could be better maybe, but it solves my issue so thank you.

@michaelnew commented on GitHub (Oct 25, 2023): @alextran1502 Huh, okay I guess that does work, thank you. It feels a bit unintuitive to me; I assumed that would just filter the uploads to the server since it's called "albums to be backed up". I didn't expect them to be hidden from the app entirely. I feel like the wording could be better maybe, but it solves my issue so thank you.
Author
Owner

@makanimike commented on GitHub (Nov 10, 2023):

Fwiw, I fell into the same trap as OP. I found it entirely unintuitive.

I was also confused by not being allowed to exclude the Recent folder. "Cannot exclude album contains all assets"? What does that mean? Because oddly enough it does actually exclude the folder after I exclude every other folder.

@makanimike commented on GitHub (Nov 10, 2023): Fwiw, I fell into the same trap as OP. I found it entirely unintuitive. I was also confused by not being allowed to exclude the Recent folder. "Cannot exclude album contains all assets"? What does that mean? Because oddly enough it does actually exclude the folder after I exclude every other folder.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#1506