Can't create Memory Generation jobs #7046

Closed
opened 2026-02-20 04:19:15 -05:00 by deekerman · 10 comments
Owner

Originally created by @jhadenfeldt on GitHub (Oct 13, 2025).

I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

When clicking "Create Job" and selecting "Memory Generation" on the web UI, the setting does not persist.

The post to https://immich.mydomain.com/api/jobs with {"name":"memory-create"} is successful, but the subsequent GET does not include an entry for Memory Generation.

The OS that Immich Server is running on

Ubuntu 24.04.3 LTS

Version of Immich Server

v2.0.1

Version of Immich Mobile App

v2.0.1

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

No response

Your docker-compose.yml content

#
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
#
# 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}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/data
      - ${THUMB_LOCATION}:/data/thumbs
      - ${ENCODED_VIDEO_LOCATION}:/data/encoded-video
      - ${PROFILE_LOCATION}:/data/profile
      - ${BACKUP_LOCATION}:/data/backups
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false
  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] 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://docs.immich.app/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false
  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:41eacbe83eca995561fe43814fd4891e16e39632806253848efaf04d3c8a8b84
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: --data-checksums
      # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
      # DB_STORAGE_TYPE: 'HDD'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    shm_size: 128mb
    restart: always
volumes:
  model-cache: null
networks: {}

Your .env content

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

# The location where your uploaded files are stored
#UPLOAD_LOCATION=/mnt/storagebox1/immich/library
UPLOAD_LOCATION=/mnt/storagebox1/immich/immich_files
THUMB_LOCATION=/mnt/storagebox1/immich/thumbs
ENCODED_VIDEO_LOCATION=/mnt/storagebox1/immich/immich/encoded-video
PROFILE_LOCATION=/mnt/storagebox1/immich/profile
BACKUP_LOCATION=/mnt/storagebox1/immich/backups

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=/home/docker-data/immich/database

# 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=Etc/UTC

# 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
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=<redacted>

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

IMMICH_IGNORE_MOUNT_CHECK_ERRORS=true

Reproduction steps

  1. Go to Administration
  2. Go to Jobs
  3. Go to + Create job
  4. Select Memory generation
  5. No Memory generation job has been added

Relevant log output


Additional information

No response

Originally created by @jhadenfeldt on GitHub (Oct 13, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug When clicking "Create Job" and selecting "Memory Generation" on the web UI, the setting does not persist. The post to `https://immich.mydomain.com/api/jobs` with `{"name":"memory-create"}` is successful, but the subsequent `GET` does not include an entry for Memory Generation. ### The OS that Immich Server is running on Ubuntu 24.04.3 LTS ### Version of Immich Server v2.0.1 ### Version of Immich Mobile App v2.0.1 ### Platform with the issue - [x] Server - [x] Web - [ ] Mobile ### Device make and model _No response_ ### Your docker-compose.yml content ```YAML # # WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose # # 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} # extends: # file: hwaccel.transcoding.yml # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding volumes: # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file - ${UPLOAD_LOCATION}:/data - ${THUMB_LOCATION}:/data/thumbs - ${ENCODED_VIDEO_LOCATION}:/data/encoded-video - ${PROFILE_LOCATION}:/data/profile - ${BACKUP_LOCATION}:/data/backups - /etc/localtime:/etc/localtime:ro env_file: - .env ports: - 2283:2283 depends_on: - redis - database restart: always healthcheck: disable: false immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] 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://docs.immich.app/features/ml-hardware-acceleration # file: hwaccel.ml.yml # service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - model-cache:/cache env_file: - .env restart: always healthcheck: disable: false redis: container_name: immich_redis image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571 healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:41eacbe83eca995561fe43814fd4891e16e39632806253848efaf04d3c8a8b84 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: --data-checksums # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs # DB_STORAGE_TYPE: 'HDD' volumes: # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - ${DB_DATA_LOCATION}:/var/lib/postgresql/data shm_size: 128mb restart: always volumes: model-cache: null networks: {} ``` ### Your .env content ```Shell # You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables # The location where your uploaded files are stored #UPLOAD_LOCATION=/mnt/storagebox1/immich/library UPLOAD_LOCATION=/mnt/storagebox1/immich/immich_files THUMB_LOCATION=/mnt/storagebox1/immich/thumbs ENCODED_VIDEO_LOCATION=/mnt/storagebox1/immich/immich/encoded-video PROFILE_LOCATION=/mnt/storagebox1/immich/profile BACKUP_LOCATION=/mnt/storagebox1/immich/backups # The location where your database files are stored. Network shares are not supported for the database DB_DATA_LOCATION=/home/docker-data/immich/database # 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=Etc/UTC # 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 # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=<redacted> # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich IMMICH_IGNORE_MOUNT_CHECK_ERRORS=true ``` ### Reproduction steps 1. Go to `Administration` 2. Go to `Jobs` 3. Go to `+ Create job` 3. Select `Memory generation` 4. No `Memory generation` job has been added ### Relevant log output ```shell ``` ### Additional information _No response_
Author
Owner

@bo0tzz commented on GitHub (Oct 13, 2025):

Are you sure it hasn't just finished already by the time you make the next request?

@bo0tzz commented on GitHub (Oct 13, 2025): Are you sure it hasn't just finished already by the time you make the next request?
Author
Owner

@jhadenfeldt commented on GitHub (Oct 13, 2025):

I'm not 100% sure - how could I check? Shouldn't the job still show up in the Job status list with the other jobs though?

@jhadenfeldt commented on GitHub (Oct 13, 2025): I'm not 100% sure - how could I check? Shouldn't the job still show up in the Job status list with the other jobs though?
Author
Owner

@bo0tzz commented on GitHub (Oct 13, 2025):

how could I check?

Idk, but this whole thing seems more like an XY problem. What are you actually trying to do/accomplish?

@bo0tzz commented on GitHub (Oct 13, 2025): > how could I check? Idk, but this whole thing seems more like an XY problem. What are you actually trying to do/accomplish?
Author
Owner

@HeisenbergOnHash commented on GitHub (Oct 13, 2025):

I'm also having same issue

@HeisenbergOnHash commented on GitHub (Oct 13, 2025): I'm also having same issue
Author
Owner

@jhadenfeldt commented on GitHub (Oct 13, 2025):

how could I check?

Idk, but this whole thing seems more like an XY problem. What are you actually trying to do/accomplish?

I would like to see Memories and wasn't seeing any, so I saw that I wasn't having any job for creating memories.

@jhadenfeldt commented on GitHub (Oct 13, 2025): > > how could I check? > > Idk, but this whole thing seems more like an XY problem. What are you actually trying to do/accomplish? I would like to see Memories and wasn't seeing any, so I saw that I wasn't having any job for creating memories.
Author
Owner

@Hinfty commented on GitHub (Oct 14, 2025):

I suspect I had a similar problem, but didn't test it further.
I noticed one of the assets in the current day's memories had an incorrect date, so I fixed it and re-ran memory generation, but no change.

  1. Pick asset in today's memories
  2. Change date of said asset
  3. Re-run memory generation
  4. Asset still appears in today's memories on web. When opened, the memory shows the correct updated date.

This is a very rare case, but I expected the memories to update and the asset to be moved to the corrected date's memories

@Hinfty commented on GitHub (Oct 14, 2025): I suspect I had a similar problem, but didn't test it further. I noticed one of the assets in the current day's memories had an incorrect date, so I fixed it and re-ran memory generation, but no change. 1. Pick asset in today's memories 2. Change date of said asset 3. Re-run memory generation 4. Asset still appears in today's memories on web. When opened, the memory shows the correct updated date. This is a very rare case, but I expected the memories to update and the asset to be moved to the corrected date's memories
Author
Owner

@ExceptionsOccur commented on GitHub (Oct 20, 2025):

I suspect I had a similar problem, but didn't test it further. I noticed one of the assets in the current day's memories had an incorrect date, so I fixed it and re-ran memory generation, but no change.

1. Pick asset in today's memories

2. Change date of said asset

3. Re-run memory generation

4. Asset still appears in today's memories on web. When opened, the memory shows the correct updated date.

This is a very rare case, but I expected the memories to update and the asset to be moved to the corrected date's memories

This issue has persisted because the way memory is generated involves creating a few days' worth of memories each time and storing them in the memory table of the database. Each request merely involves querying the table. Changing the photo time does not trigger the generation of memory. The task to clear memory, as I tested, seems to be ineffective as well, thus making the re-generation ineffective. If one wants to re-generate memory, the memories-state field in the system_metadata data table needs to be modified or deleted, and then re-generation can be carried out. However, this will lead to another problem: the app's cache will not be updated. After modifying system_metadata and re-generating memory, duplicate memories will be displayed in the app.

@ExceptionsOccur commented on GitHub (Oct 20, 2025): > I suspect I had a similar problem, but didn't test it further. I noticed one of the assets in the current day's memories had an incorrect date, so I fixed it and re-ran memory generation, but no change. > > 1. Pick asset in today's memories > > 2. Change date of said asset > > 3. Re-run memory generation > > 4. Asset still appears in today's memories on web. When opened, the memory shows the correct updated date. > > > This is a very rare case, but I expected the memories to update and the asset to be moved to the corrected date's memories This issue has persisted because the way memory is generated involves creating a few days' worth of memories each time and storing them in the memory table of the database. Each request merely involves querying the table. Changing the photo time does not trigger the generation of memory. The task to clear memory, as I tested, seems to be ineffective as well, thus making the re-generation ineffective. If one wants to re-generate memory, the memories-state field in the system_metadata data table needs to be modified or deleted, and then re-generation can be carried out. However, this will lead to another problem: the app's cache will not be updated. After modifying system_metadata and re-generating memory, duplicate memories will be displayed in the app.
Author
Owner

@yvesandre commented on GitHub (Oct 31, 2025):

I have the exact same issue even in the latest version 2.2.0

[Edit] Same in 2.2.1, I tried all the suggestions from here and other posts, including truncating the memory table, pushing the job through the api, etc.

@yvesandre commented on GitHub (Oct 31, 2025): I have the exact same issue even in the latest version 2.2.0 [Edit] Same in 2.2.1, I tried all the suggestions from here and other posts, including truncating the memory table, pushing the job through the api, etc.
Author
Owner

@rosbeef commented on GitHub (Nov 2, 2025):

I have the exact same issue even in the latest version 2.2.0

Hi 2.2.1 too

@rosbeef commented on GitHub (Nov 2, 2025): > I have the exact same issue even in the latest version 2.2.0 Hi 2.2.1 too
Author
Owner

@zmanring commented on GitHub (Jan 26, 2026):

👀 Watching, this was working for me in 2.4.1 until a few days ago.. it now is showing nothing for memories.. I tried restarting as well, no prevail.

@zmanring commented on GitHub (Jan 26, 2026): 👀 Watching, this was working for me in 2.4.1 until a few days ago.. it now is showing nothing for memories.. I tried restarting as well, no prevail.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/immich#7046
No description provided.