immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
52.03k stars 2.76k forks source link

Failed to download asset on Mobile from partner's shared album #14159

Open CommanderBubble opened 2 days ago

CommanderBubble commented 2 days ago

The bug

using the mobile app, when attempting to download an asset from a partner's shared album it fails and only presents the failure in a popup message

this was attempted with both parties' access to the other's shared albums on our respective mobile phones, and both exhibit the same behaviour

even with extra logging enabled and logging level set to finest, not a single log is generated, so i cannot attach any logs. verified this multiple times by

the issue is not present in the web client

immich_download_failure

The OS that Immich Server is running on

Debian (TrueNAS Scale)

Version of Immich Server

1.120.2

Version of Immich Mobile App

1.120.2 build.2167

Platform with the issue

Your docker-compose.yml content

#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    healthcheck:
      disable: false
    networks:
      - proxy
      - immich
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs
      - ${ENCODED_VIDEO_LOCATION}:/usr/src/app/upload/encoded-video
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
    restart: unless-stopped
    logging:
      driver: local
      options:
        max-size: 3m
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.immich.rule=Host(`immich.home`)"
      - "traefik.http.routers.immich.entrypoints=http"
      - "traefik.http.routers.immich.middlewares=https-redirect@file"
      - "traefik.http.routers.immich.service=immich"
      - "traefik.http.routers.immich-secure.rule=Host(`immich.home`)"
      - "traefik.http.routers.immich-secure.entrypoints=https"
      - "traefik.http.routers.immich-secure.service=immich"
      - "traefik.http.routers.immich-secure.tls=true"
      - "traefik.http.services.immich.loadbalancer.server.port=2283"

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    restart: unless-stopped
    healthcheck:
      disable: false
    networks:
      - proxy
      - immich
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    logging:
      driver: local
      options:
        max-size: 3m

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5
    networks:
      - immich
    restart: unless-stopped
    logging:
      driver: local
      options:
        max-size: 3m
    healthcheck:
      test: redis-cli ping || exit 1

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    restart: unless-stopped
    networks:
      - immich
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    logging:
      driver: local
      options:
        max-size: 3m
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 
1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]

volumes:
  model-cache:

networks:
  proxy:
    external: true
    attachable: false
  immich:
    driver: bridge
    internal: true
    attachable: false

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/data/immich/data
THUMB_LOCATION=/mnt/data/immich/thumbnails
ENCODED_VIDEO_LOCATION=/mnt/data/immich/encoded_video

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
TZ=Australia/Melbourne

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

# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=<REDACTED>

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

REDIS_HOSTNAME=immich_redis

Reproduction steps

  1. open an asset from a partner shared album
  2. attempt to download the asset

Relevant log output

No response

Additional information

No response

alextran1502 commented 2 days ago

Hello, is this a motion photo and if you can download other photos, including your own successfully?

CommanderBubble commented 2 days ago

no, just regular photos.

my own photos don't have the download for them in the options at the bottom as they are currently on my device locally

CommanderBubble commented 2 days ago

just tested; if i don't have it on my device, it also fails to download it via the option at the top of the image.

alextran1502 commented 1 day ago

Hmm, let me include some log for the next release