immich-app / immich

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

[BUG] Shared album browsing stuck after selecting Info/Details button #6168

Closed Th0mC closed 10 months ago

Th0mC commented 10 months ago

The bug

If browsing a public shared album (no user connected), we select once the Info/details button on a photo, then browsing is stuck. None of the buttons will work, neither arrow keys. Even refreshing the page, we will go back to the thumbnail view but with no possibility to open an image.

The OS that Immich Server is running on

Docker on linux arm64

Version of Immich Server

v1.91.4

Version of Immich Mobile App

N/A

Platform with the issue

Your docker-compose.yml content

{
  "cosmos-installer": {
    "form": [
      {
        "name": "photoPath",
        "label": "What is the path to your uploaded Photos?",
        "initialValue": "{DefaultDataPath}/immich-photos",
        "type": "text"
      },
      { 
        "name": "installImmichBackup",
        "label": "Do you want to add a backup agent for the database? (https://immich.app/docs/administration/backup-and-restore)",
        "initialValue": false,
        "type": "checkbox"
      }
      {if Context.installImmichBackup}
      , { 
        "name": "ImmichBackupPath",
        "label": "Where do you want to save that backup?",
        "initialValue": "{DefaultDataPath}/immich-backup",
        "type": "text"
      }
      {/if}
    ]
  },
  "minVersion": "0.12.0",
  "services": {
    "{ServiceName}": {
      "container_name": "{ServiceName}",
      "hostname": "{ServiceName}",
      "image": "ghcr.io/immich-app/immich-server:release",
      "command": "start.sh immich",
      "networks": {
        "{ServiceName}": {}
      },
      "volumes": [
        {
          "source": "{Context.photoPath}",
          "target": "/usr/src/app/upload",
          "type": "bind"
        },
        {
          "source": "/etc/localtime",
          "target": "/etc/localtime",
          "type": "bind"
        }
      ],
      "labels": {
        "cosmos-persistent-env": "UPLOAD_LOCATION, TYPESENSE_API_KEY, DB_PASSWORD, DB_DATABASE_NAME",
        "cosmos-force-network-secured": "true",
        "cosmos-auto-update": "false",
        "cosmos-icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Immich/icon.png",
        "cosmos-stack": "{ServiceName}",
        "cosmos-stack-main": "{ServiceName}"
      },
      "environment": [
        "UPLOAD_LOCATION=/usr/src/app/upload",
        "TYPESENSE_API_KEY={Passwords.0}",
        "DB_PASSWORD={Passwords.1}",
        "DB_HOSTNAME={ServiceName}-database",
        "DB_USERNAME=postgres",
        "DB_DATABASE_NAME=immich",
        "REDIS_HOSTNAME={ServiceName}-redis"
      ],
      "depends_on": [
        "{ServiceName}-redis",
        "{ServiceName}-database"
      ],
      "routes": [
        {
          "name": "{ServiceName}",
          "description": "Expose {ServiceName} to the web",
          "useHost": true,
          "target": "http://{ServiceName}:3001",
          "mode": "SERVAPP",
          "Timeout": 14400000,
          "ThrottlePerMinute": 12000,
          "BlockCommonBots": true,
          "SmartShield": {
            "Enabled": true,
            "PolicyStrictness": 3,
            "PerUserRequestLimit": 12000,
            "PerUserSimultaneous": 100,
            "MaxGlobalSimultaneous": 1000
          }
        }
      ],
      "restart": "always"
    },
    "microservices": {
      "container_name": "microservices",
      "hostname": "microservices",
      "image": "ghcr.io/immich-app/immich-server:release",
      "command": "start.sh microservices",
      "networks": {
        "{ServiceName}": {}
      },
      "volumes": [
        {
          "source": "{Context.photoPath}",
          "target": "/usr/src/app/upload",
          "type": "bind"
        },
        {
          "source": "/etc/localtime",
          "target": "/etc/localtime",
          "type": "bind"
        }
      ],
      "labels": {
        "cosmos-persistent-env": "UPLOAD_LOCATION, TYPESENSE_API_KEY, DB_PASSWORD, DB_DATABASE_NAME",
        "cosmos-force-network-secured": "true",
        "cosmos-auto-update": "false",
        "cosmos-icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Immich/icon.png",
        "cosmos-stack": "{ServiceName}",
        "cosmos-stack-main": "{ServiceName}"
      },
      "environment": [
        "UPLOAD_LOCATION=/usr/src/app/upload",
        "TYPESENSE_API_KEY={Passwords.0}",
        "DB_PASSWORD={Passwords.1}",
        "DB_HOSTNAME={ServiceName}-database",
        "DB_USERNAME=postgres",
        "DB_DATABASE_NAME=immich",
        "REDIS_HOSTNAME={ServiceName}-redis"
      ],
      "depends_on": [
        "{ServiceName}-redis",
        "{ServiceName}-database"
      ],
      "restart": "always"
    },
    "machine-learning": {
      "container_name": "machine-learning",
      "hostname": "machine-learning",
      "image": "ghcr.io/immich-app/immich-machine-learning:release",
      "networks": {
        "{ServiceName}": {}
      },
      "volumes": [
        {
          "source": "{ServiceName}-model-cache",
          "target": "/cache",
          "type": "volume"
        }
      ],
      "labels": {
        "cosmos-persistent-env": "UPLOAD_LOCATION, TYPESENSE_API_KEY, DB_PASSWORD, DB_DATABASE_NAME",
        "cosmos-force-network-secured": "true",
        "cosmos-auto-update": "false",
        "cosmos-icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Immich/icon.png",
        "cosmos-stack": "{ServiceName}",
        "cosmos-stack-main": "{ServiceName}"
      },
      "environment": [
        "UPLOAD_LOCATION=/usr/src/app/upload",
        "TYPESENSE_API_KEY={Passwords.0}",
        "DB_PASSWORD={Passwords.1}",
        "DB_HOSTNAME={ServiceName}-database",
        "DB_USERNAME=postgres",
        "DB_DATABASE_NAME=immich",
        "REDIS_HOSTNAME={ServiceName}-redis"
      ],
      "restart": "always"
    },
    "{ServiceName}-redis": {
      "container_name": "{ServiceName}-redis",
      "hostname": "{ServiceName}-redis",
      "image": "redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5",
      "networks": {
        "{ServiceName}": {}
      },
      "labels": {
        "cosmos-persistent-env": "POSTGRES_PASSWORD, POSTGRES_USER, POSTGRES_DB",
        "cosmos-force-network-secured": "true",
        "cosmos-auto-update": "false",
        "cosmos-icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Immich/icon.png",
        "cosmos-stack": "{ServiceName}",
        "cosmos-stack-main": "{ServiceName}"
      },
      "restart": "always"
    },
    "{ServiceName}-database": {
      "container_name": "{ServiceName}-database",
      "hostname": "{ServiceName}-database",
      "image": "tensorchord/pgvecto-rs:pg14-v0.1.11",
      "user": "postgres",
      "networks": {
        "{ServiceName}": {}
      },
      "labels": {
        "cosmos-persistent-env": "POSTGRES_PASSWORD, POSTGRES_USER, POSTGRES_DB",
        "cosmos-force-network-secured": "true",
        "cosmos-auto-update": "false",
        "cosmos-icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Immich/icon.png",
        "cosmos-stack": "{ServiceName}",
        "cosmos-stack-main": "{ServiceName}"
      },
      "environment": [
        "POSTGRES_PASSWORD={Passwords.1}",
        "POSTGRES_USER=postgres",
        "POSTGRES_DB=immich"
      ],
      "volumes": [
        {
          "source": "{ServiceName}-pgdata",
          "target": "/var/lib/postgresql/data",
          "type": "volume"
        }
      ],
      "restart": "always"
    }
    {if Context.installImmichBackup}
    ,
    "{ServiceName}-backup": {
      "image": "prodrigestivill/postgres-backup-local",
      "container_name": "{ServiceName}-backup",
      "hostname": "{ServiceName}-backup",
      "restart": "unless-stopped",
      "labels": {
        "cosmos-persistent-env": "POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD, DB_DATABASE_NAME",
        "cosmos-force-network-secured": "true",
        "cosmos-auto-update": "false",
        "cosmos-icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Immich/icon.png",
        "cosmos-stack": "{ServiceName}",
        "cosmos-stack-main": "{ServiceName}"
      },
      "networks": {
        "{ServiceName}": {}
      },
      "volumes": [
        {
          "source": "{Context.ImmichBackupPath}",
          "target": "/db_dumps",
          "type": "bind"
        }
      ],
      "environment": [
        "POSTGRES_HOST={ServiceName}-database",
        "POSTGRES_DB=immich",
        "POSTGRES_USER=postgres",
        "POSTGRES_PASSWORD={Passwords.1}",
        "SCHEDULE=@daily",
        "BACKUP_KEEP_DAYS=7",
        "BACKUP_KEEP_WEEKS=4",
        "BACKUP_KEEP_MONTHS=6",
        "BACKUP_DIR=/db_dumps",
        "PUID=1000",
        "PGID=1000"
      ],
      "depends_on": [
        "{ServiceName}-database"
      ]
    }
    {/if}
  },

  "networks": {
    "{ServiceName}": {}
  }
}

Your .env content

no .env

Reproduction steps

1.Create public link to an album
2.Open in as unlogged user
3.Browse it, open an image
4.Click on Info/Details button
5.Browsing is stuck on the opened image
Same on iOS (Safari, Chrome), Macos (Safari, Act), Windows 10 (MS Edge)

Additional information

I have not seen any interesting log from the containers except the error already reported in https://github.com/immich-app/immich/issues/4861

martabal commented 10 months ago

Is it the same issue ? #6077

Th0mC commented 10 months ago

Is it the same issue ? #6077

Seems to be, yes. Except I never reproduced it without using the 'info' button. Sorry I have searched only in the opened issues before to open it. Let's see if it is solved in the next release.

kk7ds commented 10 months ago

This was broken for me too in 1.94.x and is fixed for me in 1.92, FWIW.

Th0mC commented 10 months ago

Tested and confirmed ok with 1.92.1.