[Beta] (**NOT** CF Tunnel) Large videos not uploading #7147

Closed
opened 2026-02-05 12:48:37 +03:00 by OVERLORD · 12 comments
Owner

Originally created by @GetNameSniped on GitHub (Sep 11, 2025).

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

  • Yes

The bug

I have immich set up in wsl, and i connect to it either over CF tunnel OR tailscale.

The way i have it set up is to connect to tailscale if it can, otherwise fall back to CF Tunnel.

I have ~10 videos that are +/- 100MB, and they all try to upload simultaneously, reach 100%, and then fail.
They just keep trying over and over again, which is using a lot of data too.

This is while connected to Tailscale. In the top right profile menu, it says i am connected through tailscale (Server address: 100.x.x.x). Otherwise it would show my public domain

This happens while on the beta version. I switched back to the normal version (which has its own issues) and it uploaded fine.

I stopped the app and restarted it too.

No relevant errors in logs that i could see...

The OS that Immich Server is running on

6.6.87.2-microsoft-standard-WSL2

Version of Immich Server

v1.141.1

Version of Immich Mobile App

v1.141.1 build.3013

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Google Pixel 8 Pro

Your docker-compose.yml content

#
# WARNING: To install Immich, follow our guide: https://immich.app/docs/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
      - /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://immich.app/docs/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:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11
    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:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
    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:

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=(REDACTED)

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=./postgres

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

# 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=(REDACTED)
DB_DATABASE_NAME=immich

Reproduction steps

  1. Record videos of ~120mb
  2. Switch to beta timeline
  3. Set connection order to Tailscale -> CF Tunnel
  4. Foreground backup
  5. Should fail and continue trying

Switching to normal timeline seems to work but it has other issues
...

Relevant log output


Additional information

No response

Originally created by @GetNameSniped on GitHub (Sep 11, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug I have immich set up in wsl, and i connect to it either over CF tunnel OR tailscale. The way i have it set up is to connect to tailscale if it can, otherwise fall back to CF Tunnel. I have ~10 videos that are +/- 100MB, and they all try to upload simultaneously, reach 100%, and then fail. They just keep trying over and over again, which is using a lot of data too. This is while connected to Tailscale. In the top right profile menu, it says i am connected through tailscale (Server address: 100.x.x.x). Otherwise it would show my public domain This happens while on the beta version. I switched back to the normal version (which has its own issues) and it uploaded fine. I stopped the app and restarted it too. No relevant errors in logs that i could see... ### The OS that Immich Server is running on 6.6.87.2-microsoft-standard-WSL2 ### Version of Immich Server v1.141.1 ### Version of Immich Mobile App v1.141.1 build.3013 ### Platform with the issue - [ ] Server - [ ] Web - [x] Mobile ### Device make and model Google Pixel 8 Pro ### Your docker-compose.yml content ```YAML # # WARNING: To install Immich, follow our guide: https://immich.app/docs/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 - /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://immich.app/docs/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:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11 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:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a 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: ``` ### Your .env content ```Shell # 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=(REDACTED) # The location where your database files are stored. Network shares are not supported for the database DB_DATA_LOCATION=./postgres # 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=CET # 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=(REDACTED) DB_DATABASE_NAME=immich ``` ### Reproduction steps 1. Record videos of ~120mb 2. Switch to beta timeline 3. Set connection order to Tailscale -> CF Tunnel 4. Foreground backup 5. Should fail and continue trying Switching to normal timeline seems to work but it has other issues ... ### Relevant log output ```shell ``` ### Additional information _No response_
Author
Owner

@GetNameSniped commented on GitHub (Sep 11, 2025):

Forgot to mention, no, i am not running it through any proxy to my immich instance. Tailscale connects directly to the immich 2283 port

@GetNameSniped commented on GitHub (Sep 11, 2025): Forgot to mention, no, i am not running it through any proxy to my immich instance. Tailscale connects directly to the immich 2283 port
Author
Owner

@alextran1502 commented on GitHub (Sep 11, 2025):

is there anything in the server log?

@alextran1502 commented on GitHub (Sep 11, 2025): is there anything in the server log?
Author
Owner

@GetNameSniped commented on GitHub (Sep 11, 2025):

Nothing i can see of relevance (it tried uploading at least 20 times, and theres nowhere near enough errors in the logs for it to be relevant i think...
here's the logs from the time i was trying:

[Nest] 7  - 09/11/2025, 5:58:15 AM     LOG [Microservices:MediaService] Transcoding video 68d6a944-d080-439f-8ff3-bc869c3f2b89 without hardware acceleration
[Nest] 7  - 09/11/2025, 5:58:17 AM     LOG [Microservices:MediaService] Successfully encoded 68d6a944-d080-439f-8ff3-bc869c3f2b89
[Nest] 18  - 09/11/2025, 6:00:02 AM     LOG [Api:EventRepository] Websocket Connect:    y6m4bxwd5C716N8nAABZ
[Nest] 18  - 09/11/2025, 6:00:21 AM     LOG [Api:EventRepository] Websocket Disconnect: y6m4bxwd5C716N8nAABZ
[Nest] 18  - 09/11/2025, 6:00:27 AM     LOG [Api:EventRepository] Websocket Connect:    2Xo_tGVFiitymBmqAABb
[Nest] 18  - 09/11/2025, 6:00:57 AM     LOG [Api:EventRepository] Websocket Disconnect: 2Xo_tGVFiitymBmqAABb
[Nest] 18  - 09/11/2025, 6:00:59 AM     LOG [Api:EventRepository] Websocket Connect:    Z0Olhch3_yGauuAcAABd
[Nest] 18  - 09/11/2025, 6:01:13 AM     LOG [Api:EventRepository] Websocket Disconnect: Z0Olhch3_yGauuAcAABd
[Nest] 7  - 09/11/2025, 6:23:05 AM     LOG [Microservices:MetadataService] Wrote motion photo video to /data/encoded-video/aea407da-c12d-4bdb-a79f-491492e0c1fa/f8/d7/f8d73747-6ea7-492f-a7b7-041a975ee6ea-MP.mp4
[Nest] 7  - 09/11/2025, 6:23:05 AM     LOG [Microservices:MediaService] Transcoding video f8d73747-6ea7-492f-a7b7-041a975ee6ea without hardware acceleration
[Nest] 7  - 09/11/2025, 6:23:05 AM     LOG [Microservices:MediaService] Successfully encoded f8d73747-6ea7-492f-a7b7-041a975ee6ea
[Nest] 7  - 09/11/2025, 6:23:09 AM     LOG [Microservices:MetadataService] Wrote motion photo video to /data/encoded-video/aea407da-c12d-4bdb-a79f-491492e0c1fa/ee/44/ee443034-7ab0-4cbf-9e8f-814b0371cd2c-MP.mp4
[Nest] 7  - 09/11/2025, 6:23:10 AM     LOG [Microservices:MediaService] Transcoding video ee443034-7ab0-4cbf-9e8f-814b0371cd2c without hardware acceleration
[Nest] 7  - 09/11/2025, 6:23:11 AM     LOG [Microservices:MetadataService] Wrote motion photo video to /data/encoded-video/aea407da-c12d-4bdb-a79f-491492e0c1fa/b7/ce/b7ce80d5-4d7a-4da4-aebf-545c824c4314-MP.mp4
[Nest] 7  - 09/11/2025, 6:23:13 AM     LOG [Microservices:MediaService] Successfully encoded ee443034-7ab0-4cbf-9e8f-814b0371cd2c
[Nest] 7  - 09/11/2025, 6:23:13 AM     LOG [Microservices:MediaService] Transcoding video b7ce80d5-4d7a-4da4-aebf-545c824c4314 without hardware acceleration
[Nest] 7  - 09/11/2025, 6:23:14 AM     LOG [Microservices:MediaService] Successfully encoded b7ce80d5-4d7a-4da4-aebf-545c824c4314
[Nest] 18  - 09/11/2025, 6:30:18 AM     LOG [Api:EventRepository] Websocket Connect:    b8oRxJGKV_OPSKprAABf
[Nest] 18  - 09/11/2025, 6:31:01 AM     LOG [Api:EventRepository] Websocket Disconnect: b8oRxJGKV_OPSKprAABf
[Nest] 18  - 09/11/2025, 6:31:03 AM     LOG [Api:EventRepository] Websocket Connect:    ISvZDSE2MN-j9CF_AABh
[Nest] 18  - 09/11/2025, 6:34:09 AM     LOG [Api:EventRepository] Websocket Disconnect: ISvZDSE2MN-j9CF_AABh
[Nest] 18  - 09/11/2025, 6:34:46 AM     LOG [Api:EventRepository] Websocket Connect:    sglcAAUS9hzftoqmAABj
[Nest] 18  - 09/11/2025, 6:35:02 AM     LOG [Api:EventRepository] Websocket Disconnect: sglcAAUS9hzftoqmAABj
[Nest] 18  - 09/11/2025, 6:38:05 AM     LOG [Api:EventRepository] Websocket Connect:    mi0r9NiEGHTD4ihrAABl
[Nest] 18  - 09/11/2025, 6:39:12 AM     LOG [Api:EventRepository] Websocket Disconnect: mi0r9NiEGHTD4ihrAABl
[Nest] 18  - 09/11/2025, 6:39:26 AM     LOG [Api:EventRepository] Websocket Connect:    2SnF0zNVESEZJcIaAABn
[Nest] 18  - 09/11/2025, 6:39:48 AM     LOG [Api:EventRepository] Websocket Disconnect: 2SnF0zNVESEZJcIaAABn
[Nest] 18  - 09/11/2025, 6:39:50 AM     LOG [Api:EventRepository] Websocket Connect:    QDZxsdva1B1bKLEkAABp
[Nest] 18  - 09/11/2025, 6:40:36 AM     LOG [Api:EventRepository] Websocket Disconnect: QDZxsdva1B1bKLEkAABp
[Nest] 18  - 09/11/2025, 6:40:45 AM     LOG [Api:EventRepository] Websocket Connect:    V7iV7XbER1j7-R6QAABr
[Nest] 18  - 09/11/2025, 6:41:52 AM     LOG [Api:EventRepository] Websocket Disconnect: V7iV7XbER1j7-R6QAABr
[Nest] 18  - 09/11/2025, 6:45:49 AM     LOG [Api:EventRepository] Websocket Connect:    wMzrk6BCUwrYlDqqAABt
[Nest] 18  - 09/11/2025, 6:46:40 AM     LOG [Api:EventRepository] Websocket Disconnect: wMzrk6BCUwrYlDqqAABt
[Nest] 18  - 09/11/2025, 6:46:55 AM     LOG [Api:EventRepository] Websocket Connect:    NqSevGWl40JAn2vlAABv
[Nest] 18  - 09/11/2025, 6:47:16 AM     LOG [Api:EventRepository] Websocket Disconnect: NqSevGWl40JAn2vlAABv
[Nest] 18  - 09/11/2025, 6:47:16 AM     LOG [Api:EventRepository] Websocket Connect:    vjrPHhOWBTNe2YXrAABx
[Nest] 18  - 09/11/2025, 6:47:36 AM     LOG [Api:EventRepository] Websocket Disconnect: vjrPHhOWBTNe2YXrAABx
[Nest] 18  - 09/11/2025, 7:09:08 AM     LOG [Api:EventRepository] Websocket Connect:    mtwhv8h0fFNPLyrHAABz
[Nest] 18  - 09/11/2025, 7:09:36 AM     LOG [Api:EventRepository] Websocket Disconnect: mtwhv8h0fFNPLyrHAABz
[Nest] 18  - 09/11/2025, 7:09:37 AM    WARN [Api:FileUploadInterceptor] Request error while uploading file, cleaning up
[Nest] 18  - 09/11/2025, 7:09:37 AM    WARN [Api:FileUploadInterceptor] Error: aborted
    at abortIncoming (node:_http_server:825:17)
    at socketOnClose (node:_http_server:819:3)
    at Socket.emit (node:events:531:35)
    at TCP.<anonymous> (node:net:346:12)
    at TCP.callbackTrampoline (node:internal/async_hooks:130:17) {
  code: 'ECONNRESET'
}
[Nest] 18  - 09/11/2025, 7:09:37 AM    WARN [Api:FileUploadInterceptor] Request error while uploading file, cleaning up
[Nest] 18  - 09/11/2025, 7:09:37 AM    WARN [Api:FileUploadInterceptor] Error: aborted
    at abortIncoming (node:_http_server:825:17)
    at socketOnClose (node:_http_server:819:3)
    at Socket.emit (node:events:531:35)
    at TCP.<anonymous> (node:net:346:12)
    at TCP.callbackTrampoline (node:internal/async_hooks:130:17) {
  code: 'ECONNRESET'
}
[Nest] 18  - 09/11/2025, 7:09:37 AM    WARN [Api:FileUploadInterceptor] Request error while uploading file, cleaning up
[Nest] 18  - 09/11/2025, 7:09:37 AM    WARN [Api:FileUploadInterceptor] Error: aborted
    at abortIncoming (node:_http_server:825:17)
    at socketOnClose (node:_http_server:819:3)
    at Socket.emit (node:events:531:35)
    at TCP.<anonymous> (node:net:346:12)
    at TCP.callbackTrampoline (node:internal/async_hooks:130:17) {
  code: 'ECONNRESET'
}
[Nest] 18  - 09/11/2025, 7:09:38 AM     LOG [Api:EventRepository] Websocket Connect:    C0hA66pWlMkQ5kj_AAB1
[Nest] 7  - 09/11/2025, 7:11:00 AM     LOG [Microservices:MediaService] Transcoding video d6a3c4d9-85e9-45a4-ac0c-c6482e872c7f without hardware acceleration
[Nest] 7  - 09/11/2025, 7:11:12 AM     LOG [Microservices:MediaService] Successfully encoded d6a3c4d9-85e9-45a4-ac0c-c6482e872c7f
[Nest] 7  - 09/11/2025, 7:11:13 AM     LOG [Microservices:MediaService] Transcoding video c2125998-c832-4231-9d75-47fbce01eb7f without hardware acceleration

The aborted ones are probably me force-closing the app to try and fix it
and some other videos did upload i suppose (smaller files)

@GetNameSniped commented on GitHub (Sep 11, 2025): Nothing i can see of relevance (it tried uploading at least 20 times, and theres nowhere near enough errors in the logs for it to be relevant i think... here's the logs from the time i was trying: ``` [Nest] 7 - 09/11/2025, 5:58:15 AM LOG [Microservices:MediaService] Transcoding video 68d6a944-d080-439f-8ff3-bc869c3f2b89 without hardware acceleration [Nest] 7 - 09/11/2025, 5:58:17 AM LOG [Microservices:MediaService] Successfully encoded 68d6a944-d080-439f-8ff3-bc869c3f2b89 [Nest] 18 - 09/11/2025, 6:00:02 AM LOG [Api:EventRepository] Websocket Connect: y6m4bxwd5C716N8nAABZ [Nest] 18 - 09/11/2025, 6:00:21 AM LOG [Api:EventRepository] Websocket Disconnect: y6m4bxwd5C716N8nAABZ [Nest] 18 - 09/11/2025, 6:00:27 AM LOG [Api:EventRepository] Websocket Connect: 2Xo_tGVFiitymBmqAABb [Nest] 18 - 09/11/2025, 6:00:57 AM LOG [Api:EventRepository] Websocket Disconnect: 2Xo_tGVFiitymBmqAABb [Nest] 18 - 09/11/2025, 6:00:59 AM LOG [Api:EventRepository] Websocket Connect: Z0Olhch3_yGauuAcAABd [Nest] 18 - 09/11/2025, 6:01:13 AM LOG [Api:EventRepository] Websocket Disconnect: Z0Olhch3_yGauuAcAABd [Nest] 7 - 09/11/2025, 6:23:05 AM LOG [Microservices:MetadataService] Wrote motion photo video to /data/encoded-video/aea407da-c12d-4bdb-a79f-491492e0c1fa/f8/d7/f8d73747-6ea7-492f-a7b7-041a975ee6ea-MP.mp4 [Nest] 7 - 09/11/2025, 6:23:05 AM LOG [Microservices:MediaService] Transcoding video f8d73747-6ea7-492f-a7b7-041a975ee6ea without hardware acceleration [Nest] 7 - 09/11/2025, 6:23:05 AM LOG [Microservices:MediaService] Successfully encoded f8d73747-6ea7-492f-a7b7-041a975ee6ea [Nest] 7 - 09/11/2025, 6:23:09 AM LOG [Microservices:MetadataService] Wrote motion photo video to /data/encoded-video/aea407da-c12d-4bdb-a79f-491492e0c1fa/ee/44/ee443034-7ab0-4cbf-9e8f-814b0371cd2c-MP.mp4 [Nest] 7 - 09/11/2025, 6:23:10 AM LOG [Microservices:MediaService] Transcoding video ee443034-7ab0-4cbf-9e8f-814b0371cd2c without hardware acceleration [Nest] 7 - 09/11/2025, 6:23:11 AM LOG [Microservices:MetadataService] Wrote motion photo video to /data/encoded-video/aea407da-c12d-4bdb-a79f-491492e0c1fa/b7/ce/b7ce80d5-4d7a-4da4-aebf-545c824c4314-MP.mp4 [Nest] 7 - 09/11/2025, 6:23:13 AM LOG [Microservices:MediaService] Successfully encoded ee443034-7ab0-4cbf-9e8f-814b0371cd2c [Nest] 7 - 09/11/2025, 6:23:13 AM LOG [Microservices:MediaService] Transcoding video b7ce80d5-4d7a-4da4-aebf-545c824c4314 without hardware acceleration [Nest] 7 - 09/11/2025, 6:23:14 AM LOG [Microservices:MediaService] Successfully encoded b7ce80d5-4d7a-4da4-aebf-545c824c4314 [Nest] 18 - 09/11/2025, 6:30:18 AM LOG [Api:EventRepository] Websocket Connect: b8oRxJGKV_OPSKprAABf [Nest] 18 - 09/11/2025, 6:31:01 AM LOG [Api:EventRepository] Websocket Disconnect: b8oRxJGKV_OPSKprAABf [Nest] 18 - 09/11/2025, 6:31:03 AM LOG [Api:EventRepository] Websocket Connect: ISvZDSE2MN-j9CF_AABh [Nest] 18 - 09/11/2025, 6:34:09 AM LOG [Api:EventRepository] Websocket Disconnect: ISvZDSE2MN-j9CF_AABh [Nest] 18 - 09/11/2025, 6:34:46 AM LOG [Api:EventRepository] Websocket Connect: sglcAAUS9hzftoqmAABj [Nest] 18 - 09/11/2025, 6:35:02 AM LOG [Api:EventRepository] Websocket Disconnect: sglcAAUS9hzftoqmAABj [Nest] 18 - 09/11/2025, 6:38:05 AM LOG [Api:EventRepository] Websocket Connect: mi0r9NiEGHTD4ihrAABl [Nest] 18 - 09/11/2025, 6:39:12 AM LOG [Api:EventRepository] Websocket Disconnect: mi0r9NiEGHTD4ihrAABl [Nest] 18 - 09/11/2025, 6:39:26 AM LOG [Api:EventRepository] Websocket Connect: 2SnF0zNVESEZJcIaAABn [Nest] 18 - 09/11/2025, 6:39:48 AM LOG [Api:EventRepository] Websocket Disconnect: 2SnF0zNVESEZJcIaAABn [Nest] 18 - 09/11/2025, 6:39:50 AM LOG [Api:EventRepository] Websocket Connect: QDZxsdva1B1bKLEkAABp [Nest] 18 - 09/11/2025, 6:40:36 AM LOG [Api:EventRepository] Websocket Disconnect: QDZxsdva1B1bKLEkAABp [Nest] 18 - 09/11/2025, 6:40:45 AM LOG [Api:EventRepository] Websocket Connect: V7iV7XbER1j7-R6QAABr [Nest] 18 - 09/11/2025, 6:41:52 AM LOG [Api:EventRepository] Websocket Disconnect: V7iV7XbER1j7-R6QAABr [Nest] 18 - 09/11/2025, 6:45:49 AM LOG [Api:EventRepository] Websocket Connect: wMzrk6BCUwrYlDqqAABt [Nest] 18 - 09/11/2025, 6:46:40 AM LOG [Api:EventRepository] Websocket Disconnect: wMzrk6BCUwrYlDqqAABt [Nest] 18 - 09/11/2025, 6:46:55 AM LOG [Api:EventRepository] Websocket Connect: NqSevGWl40JAn2vlAABv [Nest] 18 - 09/11/2025, 6:47:16 AM LOG [Api:EventRepository] Websocket Disconnect: NqSevGWl40JAn2vlAABv [Nest] 18 - 09/11/2025, 6:47:16 AM LOG [Api:EventRepository] Websocket Connect: vjrPHhOWBTNe2YXrAABx [Nest] 18 - 09/11/2025, 6:47:36 AM LOG [Api:EventRepository] Websocket Disconnect: vjrPHhOWBTNe2YXrAABx [Nest] 18 - 09/11/2025, 7:09:08 AM LOG [Api:EventRepository] Websocket Connect: mtwhv8h0fFNPLyrHAABz [Nest] 18 - 09/11/2025, 7:09:36 AM LOG [Api:EventRepository] Websocket Disconnect: mtwhv8h0fFNPLyrHAABz [Nest] 18 - 09/11/2025, 7:09:37 AM WARN [Api:FileUploadInterceptor] Request error while uploading file, cleaning up [Nest] 18 - 09/11/2025, 7:09:37 AM WARN [Api:FileUploadInterceptor] Error: aborted at abortIncoming (node:_http_server:825:17) at socketOnClose (node:_http_server:819:3) at Socket.emit (node:events:531:35) at TCP.<anonymous> (node:net:346:12) at TCP.callbackTrampoline (node:internal/async_hooks:130:17) { code: 'ECONNRESET' } [Nest] 18 - 09/11/2025, 7:09:37 AM WARN [Api:FileUploadInterceptor] Request error while uploading file, cleaning up [Nest] 18 - 09/11/2025, 7:09:37 AM WARN [Api:FileUploadInterceptor] Error: aborted at abortIncoming (node:_http_server:825:17) at socketOnClose (node:_http_server:819:3) at Socket.emit (node:events:531:35) at TCP.<anonymous> (node:net:346:12) at TCP.callbackTrampoline (node:internal/async_hooks:130:17) { code: 'ECONNRESET' } [Nest] 18 - 09/11/2025, 7:09:37 AM WARN [Api:FileUploadInterceptor] Request error while uploading file, cleaning up [Nest] 18 - 09/11/2025, 7:09:37 AM WARN [Api:FileUploadInterceptor] Error: aborted at abortIncoming (node:_http_server:825:17) at socketOnClose (node:_http_server:819:3) at Socket.emit (node:events:531:35) at TCP.<anonymous> (node:net:346:12) at TCP.callbackTrampoline (node:internal/async_hooks:130:17) { code: 'ECONNRESET' } [Nest] 18 - 09/11/2025, 7:09:38 AM LOG [Api:EventRepository] Websocket Connect: C0hA66pWlMkQ5kj_AAB1 [Nest] 7 - 09/11/2025, 7:11:00 AM LOG [Microservices:MediaService] Transcoding video d6a3c4d9-85e9-45a4-ac0c-c6482e872c7f without hardware acceleration [Nest] 7 - 09/11/2025, 7:11:12 AM LOG [Microservices:MediaService] Successfully encoded d6a3c4d9-85e9-45a4-ac0c-c6482e872c7f [Nest] 7 - 09/11/2025, 7:11:13 AM LOG [Microservices:MediaService] Transcoding video c2125998-c832-4231-9d75-47fbce01eb7f without hardware acceleration ``` The aborted ones are probably me force-closing the app to try and fix it and some other videos did upload i suppose (smaller files)
Author
Owner

@nielseulink commented on GitHub (Sep 11, 2025):

Having the same issue, it's trying multiple times and showing an upload speed and percentage. But it failed eventually.

@nielseulink commented on GitHub (Sep 11, 2025): Having the same issue, it's trying multiple times and showing an upload speed and percentage. But it failed eventually.
Author
Owner

@GetNameSniped commented on GitHub (Sep 11, 2025):

Having the same issue, it's trying multiple times and showing an upload speed and percentage. But it failed eventually.

Exactly the same symptoms here

@GetNameSniped commented on GitHub (Sep 11, 2025): > Having the same issue, it's trying multiple times and showing an upload speed and percentage. But it failed eventually. Exactly the same symptoms here
Author
Owner

@jondycz commented on GitHub (Sep 11, 2025):

Perhaps it's time to add chunked uploads? ❤️🙌🏼🙏🏼

It could be a separate endpoint/set of endpoints. If for whatever reason TUS can't be used, I'd imagine the endpoints to be something like:

  • /API/uploadChunked/initiate - send item metadata, return uploadID, possibly an offset because that asset has been initiated before already
  • /API/uploadChunked/chunk?id - endpoint to receive the chunks, identified by the ID of the asset
  • /API/uploadChunked/complete - makes sure all chunks were uploaded, returns whatever client needs, serializes chunks into the final file on the server
@jondycz commented on GitHub (Sep 11, 2025): Perhaps it's time to add chunked uploads? ❤️🙌🏼🙏🏼 It could be a separate endpoint/set of endpoints. If for whatever reason TUS can't be used, I'd imagine the endpoints to be something like: - /API/uploadChunked/initiate - send item metadata, return uploadID, possibly an offset because that asset has been initiated before already - /API/uploadChunked/chunk?id - endpoint to receive the chunks, identified by the ID of the asset - /API/uploadChunked/complete - makes sure all chunks were uploaded, returns whatever client needs, serializes chunks into the final file on the server
Author
Owner

@GetNameSniped commented on GitHub (Sep 11, 2025):

Yeah...
They've been on the list for way too long 😁
Would solve a lot of really common problems

@GetNameSniped commented on GitHub (Sep 11, 2025): Yeah... They've been on the list for way too long 😁 Would solve a lot of really common problems
Author
Owner

@Hinfty commented on GitHub (Sep 11, 2025):

Without CF Tunnel as secondary option this worked fine for me. I don't have CF set up and uploading 300MB via tailscale worked fine while enabling beta.
Am I missing something?

@Hinfty commented on GitHub (Sep 11, 2025): Without CF Tunnel as secondary option this worked fine for me. I don't have CF set up and uploading 300MB via tailscale worked fine while enabling beta. Am I missing something?
Author
Owner

@mmomjian commented on GitHub (Sep 11, 2025):

This is likely a duplicate of #15220 - even if it displays the Tailscale URL it sometimes may not have switched properly.

Alex if you disagree ofc reopen but it seems it’s just an interrupted CF upload

@mmomjian commented on GitHub (Sep 11, 2025): This is likely a duplicate of #15220 - even if it displays the Tailscale URL it sometimes may not have switched properly. Alex if you disagree ofc reopen but it seems it’s just an interrupted CF upload
Author
Owner

@GetNameSniped commented on GitHub (Sep 11, 2025):

Hmm ok so i recorded a 500mb file and started an upload with the same configuration as earlier (tailscale > cf)
it was connected over tailscale, and this time it managed to upload, BUT it then started a second upload (which obviously failed in the end because it was a duplicate)

and also the progress indicator seems to be a little broken sometimes. It started jumping forwards and then back, like as if there were two progress indicator values and each kept modifying the element alternating

a bit hard to explain what i mean

so it could have been the original CF issue causing this, but i am pretty sure i force-shutdown the app before attempting an upload when i first encountered this issue...

It would be nice to have a setting to not upload files over 100mb, because this issue causes a LOT of wasted data usage... for me it caused immich to use ~80gb in a month, and i assume this is quite a common problem

Or maybe we can finally have chunked uploads ;)

@GetNameSniped commented on GitHub (Sep 11, 2025): Hmm ok so i recorded a 500mb file and started an upload with the same configuration as earlier (tailscale > cf) it was connected over tailscale, and this time it managed to upload, BUT it then started a second upload (which obviously failed in the end because it was a duplicate) and also the progress indicator seems to be a little broken sometimes. It started jumping forwards and then back, like as if there were two progress indicator values and each kept modifying the element alternating a bit hard to explain what i mean so it could have been the original CF issue causing this, but i am pretty sure i force-shutdown the app before attempting an upload when i first encountered this issue... It would be nice to have a setting to not upload files over 100mb, because this issue causes a LOT of wasted data usage... for me it caused immich to use ~80gb in a month, and i assume this is quite a common problem Or maybe we can finally have chunked uploads ;)
Author
Owner

@nielseulink commented on GitHub (Sep 11, 2025):

I have Immich behind an nginix reverse proxy and I didn't had the automatic server switch configured.
After configuring that in the app and restarting it the upload completed succesfully.

I use NPM plus (NGINX Proxy Manager plus).

@nielseulink commented on GitHub (Sep 11, 2025): I have Immich behind an nginix reverse proxy and I didn't had the automatic server switch configured. After configuring that in the app and restarting it the upload completed succesfully. I use NPM plus (NGINX Proxy Manager plus).
Author
Owner

@nielseulink commented on GitHub (Sep 11, 2025):

Update to the above, after disabeling modsecurity the uploads via the proxy started to work again.

@nielseulink commented on GitHub (Sep 11, 2025): Update to the above, after disabeling modsecurity the uploads via the proxy started to work again.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#7147