immich-app / immich

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

bug(web): MacOS + Safari "Change Location" modal failing to load map #8223

Open ben-basten opened 5 months ago

ben-basten commented 5 months ago

The bug

This bug is specifically for immich web in MacOS Safari v17.4.

When attempting to add location metadata to a photo, the map in the "Change Location" modal fails to load for images that don't already have a location tag. This is not an issue if the photo already has location metadata added.

With existing location metadata (working!)

with-location-metadata

Unspecified location metadata (not working)

unspecified-location-metadata

The OS that Immich Server is running on

Ubuntu 22.04.4 LTS

Version of Immich Server

v1.99.0

Version of Immich Mobile App

n/a

Platform with the issue

Your docker-compose.yml content

version: "3.8"

#
# 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}
    command: [ "start.sh", "immich" ]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - ${EXTERNAL_LOCATION}:/mnt/photo-library:ro
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    user: "${PUID}:${PGID}"
    labels:
      - "com.centurylinklabs.watchtower.enable=false"
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    command: [ "start.sh", "microservices" ]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - ${MOUNT_LOCATION}/geocoding-dump:/usr/src/app/.reverse-geocoding-dump
      - ${EXTERNAL_LOCATION}:/mnt/photo-library:ro
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    user: "${PUID}:${PGID}"
    labels:
      - "com.centurylinklabs.watchtower.enable=false"
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - ${MOUNT_LOCATION}/model-cache:/cache
      # - model-cache:/cache
    env_file:
      - .env
    user: "${PUID}:${PGID}"
    labels:
      - "com.centurylinklabs.watchtower.enable=false"
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:afb290a0a0d0b2bd7537b62ebff1eb84d045c757c1c31ca2ca48c79536c0de82
    labels:
      - "com.centurylinklabs.watchtower.enable=false"
    restart: always

  database:
    container_name: immich_postgres
    image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    env_file:
      - .env
    user: "${PUID}:${PGID}"
    labels:
      - "com.centurylinklabs.watchtower.enable=false"
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - ${MOUNT_LOCATION}/pgdata:/var/lib/postgresql/data
      # - pgdata:/var/lib/postgresql/data
    restart: always

# volumes:
#   pgdata:
#   model-cache:

Your .env content

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

# The location for immich configuration files, such as Postgres DB and the ML model cache
MOUNT_LOCATION=../mount/immich

# The location where your uploaded files are stored
UPLOAD_LOCATION=/home/myUser/Pictures

# Path to "External Library" for immich to index
EXTERNAL_LOCATION=/mnt/photos

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

# process user ID
PUID=
# process group ID
PGID=

# 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

Sad path:

1. Select an image with unspecified location metadata in the feed
2. Open the "Info" sidebar, click on the location to edit it
3. Observe that the "Change Location" modal loads, but the dropdown search doesn't operate and the map is not visible

Additional information

No response

Xenthio commented 3 months ago

You closed #9594 which is seemingly a different issue related to stacking contexts. I have written up a cause and solution for it in there.