Memory lane widget shows a gray box #2343

Closed
opened 2026-02-05 05:59:14 +03:00 by OVERLORD · 0 comments
Owner

Originally created by @klejejs on GitHub (Mar 1, 2024).

The bug

When opening the mobile app on iOS, the memories lane shows a gray box. This has been an issue for some time now.
Looks like it was already reported in #6901, but could not be reproduced, maybe with a bit more info it will be possible.

The OS that Immich Server is running on

Ubuntu 22.04

Version of Immich Server

v1.97.0

Version of Immich Mobile App

v1.97.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

N/A

Your .env content

N/A

Reproduction steps

1. Open the APP
2. See a gray box

Additional information

There was an error in logs, it think it might be related:

Exception: RangeError (index): Invalid value: Valid value range is empty: 0
Library: widgets library
Context: building

#0      List.[] (dart:core-patch/growable_array.dart:264)
#1      _CastListBase.[] (dart:_internal/cast.dart:99)
#2      MemoryLane.build.<anonymous closure>.<anonymous closure> (package:immich_mobile/modules/memories/ui/memory_lane.dart:58)
#3      SliverChildBuilderDelegate.build (package:flutter/src/widgets/scroll_delegate.dart:490)
#4      SliverMultiBoxAdaptorElement._build (package:flutter/src/widgets/sliver.dart:829)
#5      SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:843)
#6      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2835)
#7      SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:835)
#8      RenderSliverMultiBoxAdaptor._createOrObtainChild.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:349)
#9      RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2657)
#10     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1071)
#11     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2657)
#12     RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:338)
#13     RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:424)
#14     RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:77)
#15     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#16     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139)
#17     RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:361)
#18     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#19     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601)
#20     RenderShrinkWrappingViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1925)
#21     RenderShrinkWrappingViewport.performLayout (package:flutter/src/rendering/viewport.dart:1876)
#22     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#23     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104)
#25     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#26     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#27     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104)
#28     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#29     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#30     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104)
#31     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#32     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#33     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104)
#34     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#35     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#36     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104)
#37     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#38     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#39     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104)
#40     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#41     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#42     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:279)
#43     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#44     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#45     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104)
#46     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#47     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#48     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104)
#49     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#50     RenderBox.layout (package:flutter/src/rendering/box.dart:2389)
#51     RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:211)
#52     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#53     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139)
#54     RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:361)
#55     RenderObject.layout (package:flutter/src/rendering/object.dart:2546)
#56     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601)
#57     UnboundedRenderViewport._attemptLayout (package:scrollable_positioned_list/src/viewport.dart:281)
#58     UnboundedRenderViewport.performLayout (package:scrollable_positioned_list/src/viewport.dart:182)
#59     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2385)
#60     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1025)
#61     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1038)
#62     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:591)
#63     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:986)
#64     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457)
#65     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325)
#66     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255)
#67     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1113)
#68     _invoke (dart:ui/hooks.dart:312)
#69     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:383)
#70     _drawFrame (dart:ui/hooks.dart:283)

And the issue looks like this:
image

Originally created by @klejejs on GitHub (Mar 1, 2024). ### The bug When opening the mobile app on iOS, the memories lane shows a gray box. This has been an issue for some time now. Looks like it was already reported in #6901, but could not be reproduced, maybe with a bit more info it will be possible. ### The OS that Immich Server is running on Ubuntu 22.04 ### Version of Immich Server v1.97.0 ### Version of Immich Mobile App v1.97.0 ### Platform with the issue - [ ] Server - [ ] Web - [X] Mobile ### Your docker-compose.yml content ```YAML N/A ``` ### Your .env content ```Shell N/A ``` ### Reproduction steps ```bash 1. Open the APP 2. See a gray box ``` ### Additional information There was an error in logs, it think it might be related: ``` Exception: RangeError (index): Invalid value: Valid value range is empty: 0 Library: widgets library Context: building #0 List.[] (dart:core-patch/growable_array.dart:264) #1 _CastListBase.[] (dart:_internal/cast.dart:99) #2 MemoryLane.build.<anonymous closure>.<anonymous closure> (package:immich_mobile/modules/memories/ui/memory_lane.dart:58) #3 SliverChildBuilderDelegate.build (package:flutter/src/widgets/scroll_delegate.dart:490) #4 SliverMultiBoxAdaptorElement._build (package:flutter/src/widgets/sliver.dart:829) #5 SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:843) #6 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2835) #7 SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:835) #8 RenderSliverMultiBoxAdaptor._createOrObtainChild.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:349) #9 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2657) #10 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1071) #11 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2657) #12 RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:338) #13 RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:424) #14 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:77) #15 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #16 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139) #17 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:361) #18 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #19 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601) #20 RenderShrinkWrappingViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1925) #21 RenderShrinkWrappingViewport.performLayout (package:flutter/src/rendering/viewport.dart:1876) #22 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #23 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #24 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104) #25 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #26 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #27 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104) #28 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #29 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #30 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104) #31 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #32 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #33 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104) #34 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #35 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #36 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104) #37 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #38 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #39 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104) #40 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #41 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #42 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:279) #43 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #44 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #45 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104) #46 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #47 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #48 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104) #49 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #50 RenderBox.layout (package:flutter/src/rendering/box.dart:2389) #51 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:211) #52 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #53 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139) #54 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:361) #55 RenderObject.layout (package:flutter/src/rendering/object.dart:2546) #56 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601) #57 UnboundedRenderViewport._attemptLayout (package:scrollable_positioned_list/src/viewport.dart:281) #58 UnboundedRenderViewport.performLayout (package:scrollable_positioned_list/src/viewport.dart:182) #59 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2385) #60 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1025) #61 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1038) #62 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:591) #63 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:986) #64 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457) #65 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325) #66 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255) #67 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1113) #68 _invoke (dart:ui/hooks.dart:312) #69 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:383) #70 _drawFrame (dart:ui/hooks.dart:283) ``` And the issue looks like this: ![image](https://github.com/immich-app/immich/assets/24546950/fe19688e-93e3-4f91-8110-7f80c0e40cde)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#2343