[IOS] Upload video above 1gb, never finish even when 100% file transferred BUT file 360mb works ok. #3124

Closed
opened 2026-02-05 07:49:05 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @krystaDev on GitHub (May 14, 2024).

The bug

I have one video witch can by correctly uploaded and "stored", i try for few days, from LTE, from wifi at home, from other wifi (in friends house).
File się uploaded in 100% but... never "correctly" finished. Even after update server and mobile app from 1.103.1 to 1.104.0, it's still not stored....

The OS that Immich Server is running on

Kubernetes helm chart (nodes are running on Ubuntu 22).

Version of Immich Server

v1.104.0

Version of Immich Mobile App

v1.104.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

I use helm chart - values below

Your .env content

## This chart relies on the common library chart from bjw-s
## You can find it at https://github.com/bjw-s/helm-charts/tree/main/charts/library/common
## Refer there for more detail about the supported values

# These entries are shared between all the Immich components

env:
  REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}'
  DB_HOSTNAME: "{{ .Release.Name }}-postgresql"
  DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}"
  DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}"
  # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance
  DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}"
  IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}'

image:
  tag: v1.104.0

immich:
  metrics:
    # Enabling this will create the service monitors needed to monitor immich with the prometheus operator
    enabled: false
  persistence:
    # Main data store for all photos shared between different components.
    library:
      # Automatically creating the library volume is not supported by this chart
      # You have to specify an existing PVC to use
      existingClaim: immich-storage
  # configuration is immich-config.json converted to yaml
  # ref: https://immich.app/docs/install/config-file/
  #
  configuration:
    ffmpeg:
      crf: 23
      threads: 0
      preset: ultrafast
      targetVideoCodec: h264
      acceptedVideoCodecs:
        - h264
      targetAudioCodec: aac
      acceptedAudioCodecs:
        - aac
        - mp3
        - libopus
      targetResolution: '720'
      maxBitrate: '0'
      bframes: -1
      refs: 0
      gopSize: 0
      npl: 0
      temporalAQ: false
      cqMode: auto
      twoPass: false
      preferredHwDevice: auto
      transcode: required
      tonemap: hable
      accel: disabled
    job:
      backgroundTask:
        concurrency: 5
      smartSearch:
        concurrency: 2
      metadataExtraction:
        concurrency: 5
      faceDetection:
        concurrency: 2
      search:
        concurrency: 5
      sidecar:
        concurrency: 5
      library:
        concurrency: 5
      migration:
        concurrency: 5
      thumbnailGeneration:
        concurrency: 5
      videoConversion:
        concurrency: 2
    logging:
      enabled: true
      level: log
    machineLearning:
      enabled: true
      url: http://immich-machine-learning:3003
      clip:
        enabled: true
        modelName: ViT-B-32__openai
      facialRecognition:
        enabled: true
        modelName: buffalo_l
        minScore: 0.7
        maxDistance: 0.6
        minFaces: 3
    map:
      enabled: true
      lightStyle: ''
      darkStyle: ''
    reverseGeocoding:
      enabled: true
    oauth:
      enabled: false
      issuerUrl: ''
      clientId: ''
      clientSecret: ''
      scope: openid email profile
      signingAlgorithm: RS256
      storageLabelClaim: preferred_username
      storageQuotaClaim: immich_quota
      defaultStorageQuota: 0
      buttonText: Login with OAuth
      autoRegister: true
      autoLaunch: false
      mobileOverrideEnabled: false
      mobileRedirectUri: ''
    passwordLogin:
      enabled: true
    storageTemplate:
      enabled: false
      hashVerificationEnabled: true
      template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}"
    image:
      thumbnailFormat: webp
      thumbnailSize: 250
      previewFormat: jpeg
      previewSize: 1440
      quality: 80
      colorspace: p3
      extractEmbedded: false
    newVersionCheck:
      enabled: true
    trash:
      enabled: true
      days: 30
    theme:
      customCss: ''
    user:
      deleteDelay: 7
    library:
      scan:
        enabled: true
        cronExpression: 0 0 * * *
      watch:
        enabled: true
        usePolling: false
        interval: 10000
    server:
      externalDomain: 'https://*********'
    # trash:
    #   enabled: false
    #   days: 30
    # storageTemplate:
    #   enabled: true
  #   template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}"

# Dependencies

postgresql:
  enabled: true
  image:
    repository: tensorchord/pgvecto-rs
    tag: pg14-v0.2.0
  global:
    postgresql:
      auth:
        username: immich
        database: immich
        password: *****
  primary:
    initdb:
      scripts:
        create-extensions.sql: |
          CREATE EXTENSION cube;
          CREATE EXTENSION earthdistance;
          CREATE EXTENSION vectors;

redis:
  enabled: true
  architecture: standalone
  auth:
    enabled: false

# Immich components

server:
  enabled: true
  image:
    repository: ghcr.io/immich-app/immich-server
    pullPolicy: IfNotPresent
microservices:
  enabled: true
  image:
    repository: ghcr.io/immich-app/immich-server
    pullPolicy: IfNotPresent

machine-learning:
  enabled: true
  image:
    repository: ghcr.io/immich-app/immich-machine-learning
    pullPolicy: IfNotPresent
  env:
    TRANSFORMERS_CACHE: /cache
  persistence:
    cache:
      enabled: true
      size: 10Gi
      # Optional: Set this to pvc to avoid downloading the ML models every start.
      type: emptyDir
      accessMode: ReadWriteMany
      storageClass: longhorn

Reproduction steps

1. Create video on IOS over few minutes (size above 1gb), in my case 1.12 (shorted video is ok)
2. Start uploading
3. And... upload never finish correctly

Relevant log output

No response

Additional information

It's not by cloudflare body limit, because file 380mb works fine
image

Originally created by @krystaDev on GitHub (May 14, 2024). ### The bug I have one video witch can by correctly uploaded and "stored", i try for few days, from LTE, from wifi at home, from other wifi (in friends house). File się uploaded in 100% but... never "correctly" finished. Even after update server and mobile app from 1.103.1 to 1.104.0, it's still not stored.... ### The OS that Immich Server is running on Kubernetes helm chart (nodes are running on Ubuntu 22). ### Version of Immich Server v1.104.0 ### Version of Immich Mobile App v1.104.0 ### Platform with the issue - [X] Server - [ ] Web - [X] Mobile ### Your docker-compose.yml content ```YAML I use helm chart - values below ``` ### Your .env content ```Shell ## This chart relies on the common library chart from bjw-s ## You can find it at https://github.com/bjw-s/helm-charts/tree/main/charts/library/common ## Refer there for more detail about the supported values # These entries are shared between all the Immich components env: REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}' DB_HOSTNAME: "{{ .Release.Name }}-postgresql" DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}" DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}" # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}" IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' image: tag: v1.104.0 immich: metrics: # Enabling this will create the service monitors needed to monitor immich with the prometheus operator enabled: false persistence: # Main data store for all photos shared between different components. library: # Automatically creating the library volume is not supported by this chart # You have to specify an existing PVC to use existingClaim: immich-storage # configuration is immich-config.json converted to yaml # ref: https://immich.app/docs/install/config-file/ # configuration: ffmpeg: crf: 23 threads: 0 preset: ultrafast targetVideoCodec: h264 acceptedVideoCodecs: - h264 targetAudioCodec: aac acceptedAudioCodecs: - aac - mp3 - libopus targetResolution: '720' maxBitrate: '0' bframes: -1 refs: 0 gopSize: 0 npl: 0 temporalAQ: false cqMode: auto twoPass: false preferredHwDevice: auto transcode: required tonemap: hable accel: disabled job: backgroundTask: concurrency: 5 smartSearch: concurrency: 2 metadataExtraction: concurrency: 5 faceDetection: concurrency: 2 search: concurrency: 5 sidecar: concurrency: 5 library: concurrency: 5 migration: concurrency: 5 thumbnailGeneration: concurrency: 5 videoConversion: concurrency: 2 logging: enabled: true level: log machineLearning: enabled: true url: http://immich-machine-learning:3003 clip: enabled: true modelName: ViT-B-32__openai facialRecognition: enabled: true modelName: buffalo_l minScore: 0.7 maxDistance: 0.6 minFaces: 3 map: enabled: true lightStyle: '' darkStyle: '' reverseGeocoding: enabled: true oauth: enabled: false issuerUrl: '' clientId: '' clientSecret: '' scope: openid email profile signingAlgorithm: RS256 storageLabelClaim: preferred_username storageQuotaClaim: immich_quota defaultStorageQuota: 0 buttonText: Login with OAuth autoRegister: true autoLaunch: false mobileOverrideEnabled: false mobileRedirectUri: '' passwordLogin: enabled: true storageTemplate: enabled: false hashVerificationEnabled: true template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" image: thumbnailFormat: webp thumbnailSize: 250 previewFormat: jpeg previewSize: 1440 quality: 80 colorspace: p3 extractEmbedded: false newVersionCheck: enabled: true trash: enabled: true days: 30 theme: customCss: '' user: deleteDelay: 7 library: scan: enabled: true cronExpression: 0 0 * * * watch: enabled: true usePolling: false interval: 10000 server: externalDomain: 'https://*********' # trash: # enabled: false # days: 30 # storageTemplate: # enabled: true # template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" # Dependencies postgresql: enabled: true image: repository: tensorchord/pgvecto-rs tag: pg14-v0.2.0 global: postgresql: auth: username: immich database: immich password: ***** primary: initdb: scripts: create-extensions.sql: | CREATE EXTENSION cube; CREATE EXTENSION earthdistance; CREATE EXTENSION vectors; redis: enabled: true architecture: standalone auth: enabled: false # Immich components server: enabled: true image: repository: ghcr.io/immich-app/immich-server pullPolicy: IfNotPresent microservices: enabled: true image: repository: ghcr.io/immich-app/immich-server pullPolicy: IfNotPresent machine-learning: enabled: true image: repository: ghcr.io/immich-app/immich-machine-learning pullPolicy: IfNotPresent env: TRANSFORMERS_CACHE: /cache persistence: cache: enabled: true size: 10Gi # Optional: Set this to pvc to avoid downloading the ML models every start. type: emptyDir accessMode: ReadWriteMany storageClass: longhorn ``` ### Reproduction steps ```bash 1. Create video on IOS over few minutes (size above 1gb), in my case 1.12 (shorted video is ok) 2. Start uploading 3. And... upload never finish correctly ``` ### Relevant log output _No response_ ### Additional information It's not by cloudflare body limit, because file 380mb works fine <img width="330" alt="image" src="https://github.com/immich-app/immich/assets/63036475/4697d4d2-f3ac-4d2a-b992-5d765887523c">
Author
Owner

@krystaDev commented on GitHub (May 14, 2024):

image

Same working correctly while created file above 500mb

@krystaDev commented on GitHub (May 14, 2024): <img width="372" alt="image" src="https://github.com/immich-app/immich/assets/63036475/2ec8c06b-f722-4f7c-8dcb-b2f4a9885f5b"> Same working correctly while created file above 500mb
Author
Owner

@krystaDev commented on GitHub (May 14, 2024):

image

File above 1gb never ends....

@krystaDev commented on GitHub (May 14, 2024): <img width="436" alt="image" src="https://github.com/immich-app/immich/assets/63036475/29de9648-15bb-42c7-9206-2dd2a21bfbbb"> File above 1gb never ends....
Author
Owner

@bo0tzz commented on GitHub (May 14, 2024):

Duplicate of #9461. No need to open a new issue

@bo0tzz commented on GitHub (May 14, 2024): Duplicate of #9461. No need to open a new issue
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#3124