Fedora 38 - Permission Denied (mkdir 'upload/upload') #845

Closed
opened 2026-02-04 23:01:44 +03:00 by OVERLORD · 14 comments
Owner

Originally created by @NjlsShade on GitHub (May 7, 2023).

The bug

After installing, when I try to upload an image I get an error in the web interface stating:

Cannot upload file 344210672_9224943017580920_1442512460553563197_n.jpg
Request failed with status code 502undefined

Checking the immich_server logs, I find the following:

node:internal/fs/utils:345

    throw err;

    ^



Error: EACCES: permission denied, mkdir 'upload/upload/a65272f7-3ac2-4c34-bed8-c967ce97bbdd'

    at mkdirSync (node:fs:1349:3)

    at DiskStorage.destination [as getDestination] (/usr/src/app/dist/apps/immich/apps/immich/src/config/asset-upload.config.js:63:28)

    at DiskStorage._handleFile (/usr/src/app/node_modules/multer/storage/disk.js:31:8)

    at Object._handleFile (/usr/src/app/dist/apps/immich/apps/immich/src/config/asset-upload.config.js:26:21)

    at /usr/src/app/node_modules/multer/lib/make-middleware.js:137:17

    at fileFilter (/usr/src/app/dist/apps/immich/apps/immich/src/config/asset-upload.config.js:49:9)

    at wrappedFileFilter (/usr/src/app/node_modules/multer/index.js:44:7)

    at Multipart.<anonymous> (/usr/src/app/node_modules/multer/lib/make-middleware.js:107:7)

    at Multipart.emit (node:events:527:28)

    at HeaderParser.cb (/usr/src/app/node_modules/busboy/lib/types/multipart.js:358:14) {

  errno: -13,

  syscall: 'mkdir',

  code: 'EACCES',

  path: 'upload/upload/a65272f7-3ac2-4c34-bed8-c967ce97bbdd'

}

It looks like the path it's trying to write to is /usr/src/app/upload, however, I don't see any reason why it would not have permission to write here. I've tried creating the /usr/src/app/upload directory, setting it to 777 permissions, changing this directory in the docker-compose.yml under every ${UPLOAD_LOCATION} instance (this kind of works, but then immich_microservices errors out saying the file was not found at /usr/src/app/upload).

Nothing seems to fix the problem. Any help would be greatly appreciated!

The OS that Immich Server is running on

Fedora 38

Version of Immich Server

v1.54.1

Version of Immich Mobile App

[not applicable]

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:release
    entrypoint: ["/bin/sh", "./start-server.sh"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - .env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:release
    entrypoint: ["/bin/sh", "./start-microservices.sh"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    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:release
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  immich-web:
    container_name: immich_web
    image: ghcr.io/immich-app/immich-web:release
    entrypoint: ["/bin/sh", "./entrypoint.sh"]
    env_file:
      - .env
    restart: always

  typesense:
    container_name: immich_typesense
    image: typesense/typesense:0.24.0
    environment:
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_DATA_DIR=/data
    logging:
      driver: none
    volumes:
      - tsdata:/data
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2
    restart: always

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

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

volumes:
  pgdata:
  model-cache:
  tsdata:

Your .env content

###################################################################################
# Database
###################################################################################

DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=[redacted]
DB_DATABASE_NAME=immich

# Optional Database settings:
# DB_PORT=5432

###################################################################################
# Redis
###################################################################################

REDIS_HOSTNAME=immich_redis

# REDIS_URL will be used to pass custom options to ioredis.
# Example for Sentinel
# {"sentinels":[{"host":"redis-sentinel-node-0","port":26379},{"host":"redis-sentinel-node-1","port":26379},{"host":"redis-sentinel-node-2","port":26379}],"name":"redis-sentinel"}
# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0=

# Optional Redis settings:

# Note: these parameters are not automatically passed to the Redis Container
# to do so, please edit the docker-compose.yml file as well. Redis is not configured
# via environment variables, only redis.conf or the command line

# REDIS_PORT=6379
# REDIS_DBINDEX=0
# REDIS_USERNAME=
# REDIS_PASSWORD=
# REDIS_SOCKET=

###################################################################################
# Upload File Location
#
# This is the location where uploaded files are stored.
###################################################################################

UPLOAD_LOCATION=/data/@immich/data


###################################################################################
# Typesense
###################################################################################
TYPESENSE_API_KEY=[redacted]
# TYPESENSE_ENABLED=false
# TYPESENSE_URL uses base64 encoding for the nodes json.
# Example JSON that was used:
# [
#      { 'host': 'typesense-1.example.net', 'port': '443', 'protocol': 'https' },
#      { 'host': 'typesense-2.example.net', 'port': '443', 'protocol': 'https' },
#      { 'host': 'typesense-3.example.net', 'port': '443', 'protocol': 'https' },
#  ]
# TYPESENSE_URL=ha://WwogICAgeyAnaG9zdCc6ICd0eXBlc2Vuc2UtMS5leGFtcGxlLm5ldCcsICdwb3J0JzogJzQ0MycsICdwcm90b2NvbCc6ICdodHRwcycgfSwKICAgIHsgJ2hvc3QnOiAndHlwZXNlbnNlLTIuZXhhbXBsZS5uZXQnLCAncG9ydCc6ICc0NDMnLCAncHJvdG9jb2wnOiAnaHR0cHMnIH0sCiAgICB7ICdob3N0JzogJ3R5cGVzZW5zZS0zLmV4YW1wbGUubmV0JywgJ3BvcnQnOiAnNDQzJywgJ3Byb3RvY29sJzogJ2h0dHBzJyB9LApd

###################################################################################
# Reverse Geocoding
#
# Reverse geocoding is done locally which has a small impact on memory usage
# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
# This ranges from 0-3 with 3 being the most precise
# 3 - Cities > 500 population: ~200MB RAM
# 2 - Cities > 1000 population: ~150MB RAM
# 1 - Cities > 5000 population: ~80MB RAM
# 0 - Cities > 15000 population: ~40MB RAM
####################################################################################

# DISABLE_REVERSE_GEOCODING=false
# REVERSE_GEOCODING_PRECISION=3

####################################################################################
# WEB - Optional
#
# Custom message on the login page, should be written in HTML form.
# For example:
# PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>"
####################################################################################

PUBLIC_LOGIN_PAGE_MESSAGE=

####################################################################################
# Alternative Service Addresses - Optional
#
# This is an advanced feature for users who may be running their immich services on different hosts.
# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers.
# Note: immich-microservices is bound to 3002, but no references are made
####################################################################################

IMMICH_WEB_URL=http://immich-web:3000
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003

####################################################################################
# Alternative API's External Address - Optional
#
# This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery.
# You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash.
# NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api
# Examples: http://localhost:3001, http://immich-api.example.com, etc
####################################################################################

#IMMICH_API_URL_EXTERNAL=http://localhost:3001

Reproduction steps

1. Install Immich on a fresh Fedora 38 install using docker-compose or podman-compose (I've tested with Fedora Server and Fedora Kinoite)

2. Upload an Image via the Web UI

Additional information

No response

Originally created by @NjlsShade on GitHub (May 7, 2023). ### The bug After installing, when I try to upload an image I get an error in the web interface stating: > Cannot upload file 344210672_9224943017580920_1442512460553563197_n.jpg Request failed with status code 502undefined Checking the immich_server logs, I find the following: ``` node:internal/fs/utils:345 throw err; ^ Error: EACCES: permission denied, mkdir 'upload/upload/a65272f7-3ac2-4c34-bed8-c967ce97bbdd' at mkdirSync (node:fs:1349:3) at DiskStorage.destination [as getDestination] (/usr/src/app/dist/apps/immich/apps/immich/src/config/asset-upload.config.js:63:28) at DiskStorage._handleFile (/usr/src/app/node_modules/multer/storage/disk.js:31:8) at Object._handleFile (/usr/src/app/dist/apps/immich/apps/immich/src/config/asset-upload.config.js:26:21) at /usr/src/app/node_modules/multer/lib/make-middleware.js:137:17 at fileFilter (/usr/src/app/dist/apps/immich/apps/immich/src/config/asset-upload.config.js:49:9) at wrappedFileFilter (/usr/src/app/node_modules/multer/index.js:44:7) at Multipart.<anonymous> (/usr/src/app/node_modules/multer/lib/make-middleware.js:107:7) at Multipart.emit (node:events:527:28) at HeaderParser.cb (/usr/src/app/node_modules/busboy/lib/types/multipart.js:358:14) { errno: -13, syscall: 'mkdir', code: 'EACCES', path: 'upload/upload/a65272f7-3ac2-4c34-bed8-c967ce97bbdd' } ``` It looks like the path it's trying to write to is `/usr/src/app/upload`, however, I don't see any reason why it would not have permission to write here. I've tried creating the `/usr/src/app/upload` directory, setting it to *777* permissions, changing this directory in the `docker-compose.yml` under every `${UPLOAD_LOCATION}` instance (this kind of works, but then immich_microservices errors out saying the file was not found at `/usr/src/app/upload`). Nothing seems to fix the problem. Any help would be greatly appreciated! ### The OS that Immich Server is running on Fedora 38 ### Version of Immich Server v1.54.1 ### Version of Immich Mobile App [not applicable] ### Platform with the issue - [X] Server - [ ] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML version: "3.8" services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:release entrypoint: ["/bin/sh", "./start-server.sh"] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env depends_on: - redis - database - typesense restart: always immich-microservices: container_name: immich_microservices image: ghcr.io/immich-app/immich-server:release entrypoint: ["/bin/sh", "./start-microservices.sh"] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload 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:release volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - model-cache:/cache env_file: - .env restart: always immich-web: container_name: immich_web image: ghcr.io/immich-app/immich-web:release entrypoint: ["/bin/sh", "./entrypoint.sh"] env_file: - .env restart: always typesense: container_name: immich_typesense image: typesense/typesense:0.24.0 environment: - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - TYPESENSE_DATA_DIR=/data logging: driver: none volumes: - tsdata:/data restart: always redis: container_name: immich_redis image: redis:6.2 restart: always database: container_name: immich_postgres image: postgres:14 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} PG_DATA: /var/lib/postgresql/data volumes: - pgdata:/var/lib/postgresql/data restart: always immich-proxy: container_name: immich_proxy image: ghcr.io/immich-app/immich-proxy:release environment: # Make sure these values get passed through from the env file - IMMICH_SERVER_URL - IMMICH_WEB_URL ports: - 2283:8080 logging: driver: none depends_on: - immich-server restart: always volumes: pgdata: model-cache: tsdata: ``` ### Your .env content ```Shell ################################################################################### # Database ################################################################################### DB_HOSTNAME=immich_postgres DB_USERNAME=postgres DB_PASSWORD=[redacted] DB_DATABASE_NAME=immich # Optional Database settings: # DB_PORT=5432 ################################################################################### # Redis ################################################################################### REDIS_HOSTNAME=immich_redis # REDIS_URL will be used to pass custom options to ioredis. # Example for Sentinel # {"sentinels":[{"host":"redis-sentinel-node-0","port":26379},{"host":"redis-sentinel-node-1","port":26379},{"host":"redis-sentinel-node-2","port":26379}],"name":"redis-sentinel"} # REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0= # Optional Redis settings: # Note: these parameters are not automatically passed to the Redis Container # to do so, please edit the docker-compose.yml file as well. Redis is not configured # via environment variables, only redis.conf or the command line # REDIS_PORT=6379 # REDIS_DBINDEX=0 # REDIS_USERNAME= # REDIS_PASSWORD= # REDIS_SOCKET= ################################################################################### # Upload File Location # # This is the location where uploaded files are stored. ################################################################################### UPLOAD_LOCATION=/data/@immich/data ################################################################################### # Typesense ################################################################################### TYPESENSE_API_KEY=[redacted] # TYPESENSE_ENABLED=false # TYPESENSE_URL uses base64 encoding for the nodes json. # Example JSON that was used: # [ # { 'host': 'typesense-1.example.net', 'port': '443', 'protocol': 'https' }, # { 'host': 'typesense-2.example.net', 'port': '443', 'protocol': 'https' }, # { 'host': 'typesense-3.example.net', 'port': '443', 'protocol': 'https' }, # ] # TYPESENSE_URL=ha://WwogICAgeyAnaG9zdCc6ICd0eXBlc2Vuc2UtMS5leGFtcGxlLm5ldCcsICdwb3J0JzogJzQ0MycsICdwcm90b2NvbCc6ICdodHRwcycgfSwKICAgIHsgJ2hvc3QnOiAndHlwZXNlbnNlLTIuZXhhbXBsZS5uZXQnLCAncG9ydCc6ICc0NDMnLCAncHJvdG9jb2wnOiAnaHR0cHMnIH0sCiAgICB7ICdob3N0JzogJ3R5cGVzZW5zZS0zLmV4YW1wbGUubmV0JywgJ3BvcnQnOiAnNDQzJywgJ3Byb3RvY29sJzogJ2h0dHBzJyB9LApd ################################################################################### # Reverse Geocoding # # Reverse geocoding is done locally which has a small impact on memory usage # This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable # This ranges from 0-3 with 3 being the most precise # 3 - Cities > 500 population: ~200MB RAM # 2 - Cities > 1000 population: ~150MB RAM # 1 - Cities > 5000 population: ~80MB RAM # 0 - Cities > 15000 population: ~40MB RAM #################################################################################### # DISABLE_REVERSE_GEOCODING=false # REVERSE_GEOCODING_PRECISION=3 #################################################################################### # WEB - Optional # # Custom message on the login page, should be written in HTML form. # For example: # PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>" #################################################################################### PUBLIC_LOGIN_PAGE_MESSAGE= #################################################################################### # Alternative Service Addresses - Optional # # This is an advanced feature for users who may be running their immich services on different hosts. # It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers. # Note: immich-microservices is bound to 3002, but no references are made #################################################################################### IMMICH_WEB_URL=http://immich-web:3000 IMMICH_SERVER_URL=http://immich-server:3001 IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 #################################################################################### # Alternative API's External Address - Optional # # This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery. # You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash. # NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api # Examples: http://localhost:3001, http://immich-api.example.com, etc #################################################################################### #IMMICH_API_URL_EXTERNAL=http://localhost:3001 ``` ### Reproduction steps ```bash 1. Install Immich on a fresh Fedora 38 install using docker-compose or podman-compose (I've tested with Fedora Server and Fedora Kinoite) 2. Upload an Image via the Web UI ``` ### Additional information _No response_
Author
Owner

@alextran1502 commented on GitHub (May 7, 2023):

What is the permission of the folder where you are assign to the UPLOAD_LOCATION to? Using ls -l would show it

@alextran1502 commented on GitHub (May 7, 2023): What is the permission of the folder where you are assign to the UPLOAD_LOCATION to? Using ls -l would show it
Author
Owner

@NjlsShade commented on GitHub (May 7, 2023):

What is the permission of the folder where you are assign to the UPLOAD_LOCATION to? Using ls -l would show it

It's owned by my user, but I've tried setting full permissions for user/group/other and still nothing.

~$ ls -lh /data/@immich/
total 0
drwxrwxrwx. 1 shade shade 0 May  6 21:38 data
@NjlsShade commented on GitHub (May 7, 2023): > What is the permission of the folder where you are assign to the UPLOAD_LOCATION to? Using ls -l would show it It's owned by my user, but I've tried setting full permissions for user/group/other and still nothing. ``` ~$ ls -lh /data/@immich/ total 0 drwxrwxrwx. 1 shade shade 0 May 6 21:38 data ```
Author
Owner

@alextran1502 commented on GitHub (May 8, 2023):

Do you think the @ might have caused the problem? Can you test with a normal directory without the @ character?

@alextran1502 commented on GitHub (May 8, 2023): Do you think the `@` might have caused the problem? Can you test with a normal directory without the `@` character?
Author
Owner

@NjlsShade commented on GitHub (May 8, 2023):

Tested multiple directories without the "@" symbol, does not make a difference, sadly. I also tested with the community All In One docker image and still no luck.

@NjlsShade commented on GitHub (May 8, 2023): Tested multiple directories without the "@" symbol, does not make a difference, sadly. I also tested with the community All In One docker image and still no luck.
Author
Owner

@jrasm91 commented on GitHub (May 8, 2023):

Can you connect to the immich server container and print the permissions for the upload directory?

@jrasm91 commented on GitHub (May 8, 2023): Can you connect to the immich server container and print the permissions for the upload directory?
Author
Owner

@NjlsShade commented on GitHub (May 8, 2023):

The permissions look fine, but despite this, the container is not allowed to access it:

/usr/src/app # ls -lh
total 796K   
drwxr-xr-x    1 root     root          52 Apr 23 02:59 bin
drwxr-xr-x    1 root     root           8 Apr 23 02:59 dist
drwxr-xr-x    1 root     root        7.6K Apr 23 02:59 node_modules
-rw-r--r--    1 root     root      776.5K Apr 23 02:55 package-lock.json
-rw-r--r--    1 root     root        5.4K Apr 23 02:55 package.json
-rw-r--r--    1 root     root         518 Apr 23 02:55 start-microservices.sh
-rw-r--r--    1 root     root         504 Apr 23 02:55 start-server.sh
drwxrwxrwx    1 root     root           6 May  7 06:52 upload
/usr/src/app # ls -lh ./upload/
ls: can't open './upload/': Permission denied
total 0
@NjlsShade commented on GitHub (May 8, 2023): The permissions look fine, but despite this, the container is not allowed to access it: ``` /usr/src/app # ls -lh total 796K drwxr-xr-x 1 root root 52 Apr 23 02:59 bin drwxr-xr-x 1 root root 8 Apr 23 02:59 dist drwxr-xr-x 1 root root 7.6K Apr 23 02:59 node_modules -rw-r--r-- 1 root root 776.5K Apr 23 02:55 package-lock.json -rw-r--r-- 1 root root 5.4K Apr 23 02:55 package.json -rw-r--r-- 1 root root 518 Apr 23 02:55 start-microservices.sh -rw-r--r-- 1 root root 504 Apr 23 02:55 start-server.sh drwxrwxrwx 1 root root 6 May 7 06:52 upload /usr/src/app # ls -lh ./upload/ ls: can't open './upload/': Permission denied total 0 ```
Author
Owner

@jrasm91 commented on GitHub (May 8, 2023):

Are you running the container as root?

@jrasm91 commented on GitHub (May 8, 2023): Are you running the container as root?
Author
Owner

@NjlsShade commented on GitHub (May 8, 2023):

Are you running the container as root?

I've tried both ways. Running as root does not change anything.

@NjlsShade commented on GitHub (May 8, 2023): > Are you running the container as root? I've tried both ways. Running as root does not change anything.
Author
Owner

@jrasm91 commented on GitHub (May 8, 2023):

I mean it should run as root by default.

I think this is not an immich bug. This looks like a setup problem that we need more details to help troubleshoot. Immich just needs a mounted volume with write permissions that supports a few file system operations. If that is provided everything should work.

You could do a few tests like running a basic docker image with a volume mount and confirming you can make a new folder on both sides of the mount. Also, try with the immich data mount.

More information that would be useful would include information about the backing filesystem. Is the mount location a NFS share or is it a folder on the same partition as the docker host? Can you print the output for docker volume inspect for the upload volume?

@jrasm91 commented on GitHub (May 8, 2023): I mean it should run as root by default. I think this is not an immich bug. This looks like a setup problem that we need more details to help troubleshoot. Immich just needs a mounted volume with write permissions that supports a few file system operations. If that is provided everything should work. You could do a few tests like running a basic docker image with a volume mount and confirming you can make a new folder on both sides of the mount. Also, try with the immich data mount. More information that would be useful would include information about the backing filesystem. Is the mount location a NFS share or is it a folder on the same partition as the docker host? Can you print the output for docker volume inspect for the upload volume?
Author
Owner

@NjlsShade commented on GitHub (May 8, 2023):

I'll do some more testing when I can, however, other docker volumes I have work just fine, and I setup Immich exactly the same in an Ubuntu 22.04 VM and it works correctly, so I think it's some form of compatibility problem specific to Fedora.

I've tested with multiple Fedora VMs and they all fail to allow the correct access for the Immich server.

@NjlsShade commented on GitHub (May 8, 2023): I'll do some more testing when I can, however, other docker volumes I have work just fine, and I setup Immich exactly the same in an Ubuntu 22.04 VM and it works correctly, so I think it's some form of compatibility problem specific to Fedora. I've tested with multiple Fedora VMs and they all fail to allow the correct access for the Immich server.
Author
Owner

@NjlsShade commented on GitHub (May 8, 2023):

Just to clarify, this happens on a stock Fedora Install with btrfs (you can set the data dir to any location and this issue occurs). I'll play around with the filesystem tomorrow, however, I don't see why my btrfs config would be missing any needed features.

@NjlsShade commented on GitHub (May 8, 2023): Just to clarify, this happens on a stock Fedora Install with btrfs (you can set the data dir to any location and this issue occurs). I'll play around with the filesystem tomorrow, however, I don't see why my btrfs config would be missing any needed features.
Author
Owner

@jrasm91 commented on GitHub (May 8, 2023):

Do other docker images work with the same fedora setup?

@jrasm91 commented on GitHub (May 8, 2023): Do other docker images work with the same fedora setup?
Author
Owner

@NjlsShade commented on GitHub (May 8, 2023):

SELinux was blocking IO access for some reason, all other podman images work just fine in the directory with my in place policies, so I'll have to do some more digging.

Thanks for reaching out, and sorry to bother you both. I'll close this out now.

@NjlsShade commented on GitHub (May 8, 2023): SELinux was blocking IO access for some reason, all other podman images work just fine in the directory with my in place policies, so I'll have to do some more digging. Thanks for reaching out, and sorry to bother you both. I'll close this out now.
Author
Owner

@jcianci12 commented on GitHub (May 27, 2024):

If its helpful at all to others, for me restarting the host machine fixed the error. I have noticed that this sometimes fixes similar issues with other containers.🤷‍♂️

@jcianci12 commented on GitHub (May 27, 2024): If its helpful at all to others, for me restarting the host machine fixed the error. I have noticed that this sometimes fixes similar issues with other containers.🤷‍♂️
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#845