Android App crash with large image #4141

Open
opened 2026-02-20 03:00:53 -05:00 by deekerman · 21 comments
Owner

Originally created by @revilo951 on GitHub (Oct 22, 2024).

The bug

Android app crashes when opening a large (200MP) image.

The OS that Immich Server is running on

Docker, on Ubuntu Server 22.04

Version of Immich Server

v1.118.2

Version of Immich Mobile App

v1.118.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - immich:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - immich-redis
      - immich-database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - /home/revilo951/docker/immich/model-cache:/cache
    env_file:
      - .env
    restart: always

  immich-redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc
    restart: always

  immich-database:
    container_name: immich_postgres
    image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      DB_DATA_LOCATION: ${DB_DATA_LOCATION}
    volumes:
      - /home/revilo951/docker/immich/pgdata:/var/lib/postgresql/data
    restart: always

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=./library

# 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
DB_PASSWORD=snip

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=/home/revilo951/docker/immich/pgdata

REDIS_HOSTNAME=immich_redis

Reproduction steps

  1. Open mobile app
  2. open album
  3. open large image (200MP, 25MB)
  4. profit crash

Relevant log output

No relevant logs

Additional information

No response

Originally created by @revilo951 on GitHub (Oct 22, 2024). ### The bug Android app crashes when opening a large (200MP) image. ### The OS that Immich Server is running on Docker, on Ubuntu Server 22.04 ### Version of Immich Server v1.118.2 ### Version of Immich Mobile App v1.118.0 ### Platform with the issue - [ ] Server - [ ] Web - [X] Mobile ### Your docker-compose.yml content ```YAML immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} volumes: - immich:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env ports: - 2283:2283 depends_on: - immich-redis - immich-database restart: always immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - /home/revilo951/docker/immich/model-cache:/cache env_file: - .env restart: always immich-redis: container_name: immich_redis image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc restart: always immich-database: container_name: immich_postgres image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} DB_DATA_LOCATION: ${DB_DATA_LOCATION} volumes: - /home/revilo951/docker/immich/pgdata:/var/lib/postgresql/data restart: always ``` ### 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=./library # 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 DB_PASSWORD=snip # The values below this line do not need to be changed ################################################################################### DB_HOSTNAME=immich_postgres DB_USERNAME=postgres DB_DATABASE_NAME=immich DB_DATA_LOCATION=/home/revilo951/docker/immich/pgdata REDIS_HOSTNAME=immich_redis ``` ### Reproduction steps 1. Open mobile app 2. open album 3. open large image (200MP, 25MB) 4. ~~profit~~ crash ### Relevant log output ```shell No relevant logs ``` ### Additional information _No response_
Author
Owner

@Yuvi-raj-P commented on GitHub (Oct 24, 2024):

Could you send more information about the image you’re trying to load? More of its properties, I pre assume the app is chocking either at loading the image from the server or an error is occurring when opening the image viewing page with the widgets. Could you confirm if this error also occurs when loading other images or just problems with loading this specific image? Also is the image taken from a DSLR or something, why is it that big 😅

@Yuvi-raj-P commented on GitHub (Oct 24, 2024): Could you send more information about the image you’re trying to load? More of its properties, I pre assume the app is chocking either at loading the image from the server or an error is occurring when opening the image viewing page with the widgets. Could you confirm if this error also occurs when loading other images or just problems with loading this specific image? Also is the image taken from a DSLR or something, why is it that big 😅
Author
Owner

@revilo951 commented on GitHub (Oct 24, 2024):

It's a 200MP image from a Samsung Galaxy S23 Ultra. I use them for taking photos of server racks, so I can zoom in and read labels etc.
Here's a sample (of the lovely carpet at work 😄) that crashes the app for me. I've zipped it so that it doesn't get compressed by the file share service. https://file.io/DRKBVZtRKW1s

@revilo951 commented on GitHub (Oct 24, 2024): It's a 200MP image from a Samsung Galaxy S23 Ultra. I use them for taking photos of server racks, so I can zoom in and read labels etc. Here's a sample (of the lovely carpet at work 😄) that crashes the app for me. I've zipped it so that it doesn't get compressed by the file share service. https://file.io/DRKBVZtRKW1s
Author
Owner

@aaron-iles commented on GitHub (Nov 3, 2024):

I'm experiencing something similar. The picture is 19 MiB and 4471x6706 pixels. It loads perfectly fine in the web application. I can view it on disk without issue so it doesn't look like it is corrupt. The android app shows a fuzzy picture with an exclamation point for the thumbnail. I'm happy to send the picture privately if anyone wants to test with it.

EDIT: To be clear, the app does not crash when trying to open it but rather just displays a black image with an image icon with a slash through it.

@aaron-iles commented on GitHub (Nov 3, 2024): I'm experiencing something similar. The picture is 19 MiB and 4471x6706 pixels. It loads perfectly fine in the web application. I can view it on disk without issue so it doesn't look like it is corrupt. The android app shows a fuzzy picture with an exclamation point for the thumbnail. I'm happy to send the picture privately if anyone wants to test with it. EDIT: To be clear, the app does not crash when trying to open it but rather just displays a black image with an image icon with a slash through it.
Author
Owner

@tye-mustafa commented on GitHub (Dec 18, 2024):

Yes it is crashing in my case this is a video

Logs:
Message
FlutterError - Catch all

Details
Instance of 'FlutterErrorDetails'
Exception: RangeError (start): Invalid value: Not in inclusive range 0..60: 64
Library: widgets library
Context: Instance of 'ErrorDescription'

From
Immich error logger

Stack trace
#0 RangeError.checkValidRange (dart:core/errors.dart:360)
#1 ListExtensions.slice (package:collection/src/list_extensions.dart:242)
#2 RenderList.loadAssets (package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart:104)
#3 _Section.build. (package:immich_mobile/widgets/asset_grid/immich_asset_grid_view.dart:649)
#4 _LayoutBuilderElement._rebuildWithConstraints.updateChildCallback (package:flutter/src/widgets/layout_builder.dart:191)
#5 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3038)
#6 _LayoutBuilderElement._rebuildWithConstraints (package:flutter/src/widgets/layout_builder.dart:231)
#7 RenderObject.invokeLayoutCallback. (package:flutter/src/rendering/object.dart:2719)
#8 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1098)
#9 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2719)
#10 RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:278)
#11 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:369)
#12 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#13 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#14 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#15 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#16 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#17 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:211)
#18 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#19 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:121)
#20 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:327)
#21 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#22 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601)
#23 UnboundedRenderViewport._attemptLayout (package:scrollable_positioned_list/src/viewport.dart:281)
#24 UnboundedRenderViewport.performLayout (package:scrollable_positioned_list/src/viewport.dart:182)
#25 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#26 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#27 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#28 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#29 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#30 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#31 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#32 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#33 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#34 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#35 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#36 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#37 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#38 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#39 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#40 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#41 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1448)
#42 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#43 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#44 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#45 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61)
#46 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595)
#47 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622)
#48 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#49 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#50 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#51 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:371)
#52 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#53 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#54 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#55 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61)
#56 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595)
#57 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622)
#58 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#59 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:371)
#60 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#61 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61)
#62 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595)
#63 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622)
#64 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#65 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#66 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#67 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#68 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#69 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61)
#70 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595)
#71 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622)
#72 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#73 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#74 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#75 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#76 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#77 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61)
#78 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595)
#79 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622)
#80 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#81 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:234)
#82 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#83 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61)
#84 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595)
#85 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622)
#86 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#87 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#88 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#89 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#90 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#91 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61)
#92 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595)
#93 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622)
#94 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#95 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#96 RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#97 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:173)
#98 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1092)
#99 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:237)
#100 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404)
#101 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2446)
#102 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1052)
#103 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1065)
#104 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:602)
#105 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1164)
#106 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468)
#107 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397)
#108 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318)
#109 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176)
#110 _invoke (dart:ui/hooks.dart:312)
#111 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419)
#112 _drawFrame (dart:ui/hooks.dart:283)

@tye-mustafa commented on GitHub (Dec 18, 2024): Yes it is crashing in my case this is a video Logs: Message FlutterError - Catch all Details Instance of 'FlutterErrorDetails' Exception: RangeError (start): Invalid value: Not in inclusive range 0..60: 64 Library: widgets library Context: Instance of 'ErrorDescription' From Immich error logger Stack trace #0 RangeError.checkValidRange (dart:core/errors.dart:360) #1 ListExtensions.slice (package:collection/src/list_extensions.dart:242) #2 RenderList.loadAssets (package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart:104) #3 _Section.build.<anonymous closure> (package:immich_mobile/widgets/asset_grid/immich_asset_grid_view.dart:649) #4 _LayoutBuilderElement._rebuildWithConstraints.updateChildCallback (package:flutter/src/widgets/layout_builder.dart:191) #5 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3038) #6 _LayoutBuilderElement._rebuildWithConstraints (package:flutter/src/widgets/layout_builder.dart:231) #7 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2719) #8 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1098) #9 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2719) #10 RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:278) #11 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:369) #12 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #13 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #14 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #15 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #16 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #17 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:211) #18 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #19 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:121) #20 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:327) #21 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #22 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601) #23 UnboundedRenderViewport._attemptLayout (package:scrollable_positioned_list/src/viewport.dart:281) #24 UnboundedRenderViewport.performLayout (package:scrollable_positioned_list/src/viewport.dart:182) #25 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #26 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #27 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #28 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #29 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #30 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #31 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #32 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #33 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #34 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #35 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #36 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #37 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #38 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #39 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #40 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #41 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1448) #42 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #43 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #44 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #45 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61) #46 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595) #47 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622) #48 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #49 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #50 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #51 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:371) #52 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #53 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #54 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #55 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61) #56 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595) #57 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622) #58 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #59 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:371) #60 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #61 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61) #62 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595) #63 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622) #64 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #65 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #66 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #67 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #68 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #69 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61) #70 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595) #71 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622) #72 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #73 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #74 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #75 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #76 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #77 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61) #78 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595) #79 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622) #80 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #81 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:234) #82 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #83 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61) #84 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595) #85 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622) #86 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #87 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #88 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #89 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #90 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #91 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61) #92 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595) #93 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622) #94 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #95 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111) #96 RenderObject.layout (package:flutter/src/rendering/object.dart:2608) #97 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:173) #98 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1092) #99 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:237) #100 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404) #101 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2446) #102 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1052) #103 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1065) #104 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:602) #105 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1164) #106 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468) #107 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397) #108 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318) #109 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176) #110 _invoke (dart:ui/hooks.dart:312) #111 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419) #112 _drawFrame (dart:ui/hooks.dart:283)
Author
Owner

@alextran1502 commented on GitHub (Dec 18, 2024):

@tye-mustafa is it a video you can zip up and share with me? You can send it to my email at alex.tran1502@gmail.com

@alextran1502 commented on GitHub (Dec 18, 2024): @tye-mustafa is it a video you can zip up and share with me? You can send it to my email at alex.tran1502@gmail.com
Author
Owner

@tye-mustafa commented on GitHub (Dec 18, 2024):

@tye-mustafa is it a video you can zip up and share with me? You can send it to my email at alex.tran1502@gmail.com

Unable yo size is large 136mb not supported by emails

@tye-mustafa commented on GitHub (Dec 18, 2024): > @tye-mustafa is it a video you can zip up and share with me? You can send it to my email at alex.tran1502@gmail.com Unable yo size is large 136mb not supported by emails
Author
Owner

@alextran1502 commented on GitHub (Dec 18, 2024):

You can put it on some cloud storage service like DropBox or GDrive, right?

@alextran1502 commented on GitHub (Dec 18, 2024): You can put it on some cloud storage service like DropBox or GDrive, right?
Author
Owner

@tye-mustafa commented on GitHub (Dec 18, 2024):

Done

You can put it on some cloud storage service like DropBox or GDrive, right?

@tye-mustafa commented on GitHub (Dec 18, 2024): Done > You can put it on some cloud storage service like DropBox or GDrive, right?
Author
Owner

@tye-mustafa commented on GitHub (Dec 18, 2024):

Additional info. My immich android app is keep crashing on every video

@tye-mustafa commented on GitHub (Dec 18, 2024): Additional info. My immich android app is keep crashing on every video
Author
Owner

@alextran1502 commented on GitHub (Dec 18, 2024):

@tye-mustafa What is your phone model and which method do you use to install the app?

@alextran1502 commented on GitHub (Dec 18, 2024): @tye-mustafa What is your phone model and which method do you use to install the app?
Author
Owner

@tye-mustafa commented on GitHub (Dec 18, 2024):

@tye-mustafa What is your phone model and which method do you use to install the app?

Redmi note 8 pro
Running latest version from github

Using vp9 as encoding videos, May be that is the reasons may be it is not supported?

Edit: it has G90 processer that supports vp9 decoding

@tye-mustafa commented on GitHub (Dec 18, 2024): > @tye-mustafa What is your phone model and which method do you use to install the app? Redmi note 8 pro Running latest version from github Using vp9 as encoding videos, May be that is the reasons may be it is not supported? Edit: it has G90 processer that supports vp9 decoding
Author
Owner

@alextran1502 commented on GitHub (Dec 19, 2024):

@tye-mustafa You can reset the transcoding policy back to default and try re transcoding a video. I think VP9 might be the issue

@alextran1502 commented on GitHub (Dec 19, 2024): @tye-mustafa You can reset the transcoding policy back to default and try re transcoding a video. I think VP9 might be the issue
Author
Owner

@tye-mustafa commented on GitHub (Dec 20, 2024):

@tye-mustafa You can reset the transcoding policy back to default and try re transcoding a video. I think VP9 might be the issue

i have tested on different devices only one device is crashing while playing videos rest all are fine.

@tye-mustafa commented on GitHub (Dec 20, 2024): > @tye-mustafa You can reset the transcoding policy back to default and try re transcoding a video. I think VP9 might be the issue i have tested on different devices only one device is crashing while playing videos rest all are fine.
Author
Owner

@PureLoneWolf commented on GitHub (Mar 31, 2025):

I am having the same issue as the OP, also 200mp images from a Galaxy S23 Ultra. App loads, generates the thumbs etc but if I try to view images..it force closes.

If I view the same images in a web browser on my phone or desktop, no problem at all. The only issue is on the mobile app.

I'm on v1.130.3 on both server (Docker, Unraid) and the phone (build 191)

@PureLoneWolf commented on GitHub (Mar 31, 2025): I am having the same issue as the OP, also 200mp images from a Galaxy S23 Ultra. App loads, generates the thumbs etc but if I try to view images..it force closes. If I view the same images in a web browser on my phone or desktop, no problem at all. The only issue is on the mobile app. I'm on v1.130.3 on both server (Docker, Unraid) and the phone (build 191)
Author
Owner

@PureLoneWolf commented on GitHub (Apr 6, 2025):

Small Update on the issue - I tested with knocking the quality down to 50mp and all images display without issue on mobile.
I'm now on v1.131.3 (Docker, Unraid) and the same version on Android (build 193)

@PureLoneWolf commented on GitHub (Apr 6, 2025): Small Update on the issue - I tested with knocking the quality down to 50mp and all images display without issue on mobile. I'm now on v1.131.3 (Docker, Unraid) and the same version on Android (build 193)
Author
Owner

@apetersson commented on GitHub (Jun 10, 2025):

Always reproducible, crashes app on first view of any 200mp image, Samsung S23 Ultra, current version both server + app (v1.134.0)

@apetersson commented on GitHub (Jun 10, 2025): Always reproducible, crashes app on first view of any 200mp image, Samsung S23 Ultra, current version both server + app (v1.134.0)
Author
Owner

@theguruguys commented on GitHub (Aug 19, 2025):

Same issue. 200MP images on Fold 7 crash the app.

@theguruguys commented on GitHub (Aug 19, 2025): Same issue. 200MP images on Fold 7 crash the app.
Author
Owner

@bo0tzz commented on GitHub (Sep 18, 2025):

Does this issue still happen on the new beta timeline?

@bo0tzz commented on GitHub (Sep 18, 2025): Does this issue still happen on the new beta timeline?
Author
Owner

@theguruguys commented on GitHub (Sep 18, 2025):

I am on 1.142.1 and when scrolling between 200 megapixel pictures taken on the Fold 7, it can take anywhere between four to seven seconds to go from a black screen to view the picture. And if you try to go back and forth between pictures while it is on the black screen, it will often just completely shut down the app.

@theguruguys commented on GitHub (Sep 18, 2025): I am on 1.142.1 and when scrolling between 200 megapixel pictures taken on the Fold 7, it can take anywhere between four to seven seconds to go from a black screen to view the picture. And if you try to go back and forth between pictures while it is on the black screen, it will often just completely shut down the app.
Author
Owner

@theguruguys commented on GitHub (Sep 18, 2025):

I have also noticed that the app just closes itself when it is waiting to display the 200M pictures and you hit the top left back arrow to go to the main library screen, as well as flipping between 'black screens' while waiting for the picture to appear. It does seem to happen less than before. All the other photo viewers on my phone show the pictures right away as well, and non 200M pictures show with no 5-7 second black screen delay.

@theguruguys commented on GitHub (Sep 18, 2025): I have also noticed that the app just closes itself when it is waiting to display the 200M pictures and you hit the top left back arrow to go to the main library screen, as well as flipping between 'black screens' while waiting for the picture to appear. It does seem to happen less than before. All the other photo viewers on my phone show the pictures right away as well, and non 200M pictures show with no 5-7 second black screen delay.
Author
Owner

@revilo951 commented on GitHub (Sep 18, 2025):

It's not crashing any more for me, but I'm definitely only getting a thumbnail or something, compare these screenshots of zooming into the image. The clear one is zooming into a 200MP image in Google Photos, and the blurry one is zooming into the same 200MP image in Immich.

Image Image
@revilo951 commented on GitHub (Sep 18, 2025): It's not crashing any more for me, but I'm definitely only getting a thumbnail or something, compare these screenshots of zooming into the image. The clear one is zooming into a 200MP image in Google Photos, and the blurry one is zooming into the same 200MP image in Immich. <img width="720" height="1544" alt="Image" src="https://github.com/user-attachments/assets/2b9a21f0-a68b-4db3-8a3b-3050d5da6c8f" /> <img width="720" height="1544" alt="Image" src="https://github.com/user-attachments/assets/6d7cce33-925a-4ea1-95df-dffa1637e361" />
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#4141
No description provided.