openfoodfacts / smooth-app

The new Open Food Facts mobile application for Android and iOS, crafted with Flutter and Dart
https://world.openfoodfacts.org/open-food-facts-mobile-app?utm_source=off&utf_medium=web&utm_campaign=github-repo
Apache License 2.0
740 stars 260 forks source link

The image manager has a grey screen bug (probably when network unreachable) #4612

Open teolemon opened 10 months ago

teolemon commented 10 months ago

What

monsieurtanuki commented 10 months ago

@teolemon Escaped from the subway now? Still see the same bug? It looks like a NPE to me. I'll try to reproduce it. Maybe it depends on the metro line. Was it line 13? 😉

monsieurtanuki commented 10 months ago

@teolemon You're right, without an internet connection it fails if you click on "select an existing image". Screenshot_2023-08-31-19-10-56

@g123k It looks like it may have to do with the new "deep-linkable" navigation, or something like that:

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY
╞═══════════════════════════════════════════════════════════
The following _TypeError was thrown building Builder(dirty):
Null check operator used on a null value

The relevant error-causing widget was:
  Navigator-[LabeledGlobalKey<NavigatorState>#33267]
  Navigator:file:///Users/fabricefontaine/.pub-cache/hosted/pub.dev/go_router-7.
  0.2/lib/src/builder.dart:246:12

When the exception was thrown, this was the stack:
#0      ProductImageServerButton._actionGallery.<anonymous closure>
(package:smooth_app/pages/product/product_image_server_button.dart:89:31)
#1      MaterialPageRoute.buildContent
(package:flutter/src/material/page.dart:51:55)
#2      MaterialRouteTransitionMixin.buildPage
(package:flutter/src/material/page.dart:109:27)
#3      _ModalScopeState.build.<anonymous closure>.<anonymous closure>
(package:flutter/src/widgets/routes.dart:951:53)
#4      Builder.build (package:flutter/src/widgets/basic.dart:7531:48)
#5      StatelessElement.build
(package:flutter/src/widgets/framework.dart:5156:49)
#6      ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5086:15)
#7      Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#8      ComponentElement._firstBuild
(package:flutter/src/widgets/framework.dart:5068:5)
#9      ComponentElement.mount
(package:flutter/src/widgets/framework.dart:5062:5)
...     Normal element mounting (211 frames)
#220    Element.inflateWidget
(package:flutter/src/widgets/framework.dart:3971:16)
#221    MultiChildRenderObjectElement.inflateWidget
(package:flutter/src/widgets/framework.dart:6570:36)
#222    Element.updateChild (package:flutter/src/widgets/framework.dart:3708:18)
#223    RenderObjectElement.updateChildren
(package:flutter/src/widgets/framework.dart:6153:32)
#224    MultiChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6595:17)
#225    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#226    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#227    StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:5251:11)
#228    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#229    StatefulElement.update
(package:flutter/src/widgets/framework.dart:5274:5)
#230    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#231    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#232    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#233    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#234    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#235    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#236    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#237    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#238    _InheritedNotifierElement.update
(package:flutter/src/widgets/inherited_notifier.dart:107:11)
#239    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#240    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#241    StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:5251:11)
#242    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#243    StatefulElement.update
(package:flutter/src/widgets/framework.dart:5274:5)
#244    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#245    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#246    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#247    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#248    _InheritedNotifierElement.update
(package:flutter/src/widgets/inherited_notifier.dart:107:11)
#249    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#250    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#251    StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:5251:11)
#252    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#253    StatefulElement.update
(package:flutter/src/widgets/framework.dart:5274:5)
#254    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#255    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#256    StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:5251:11)
#257    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#258    StatefulElement.update
(package:flutter/src/widgets/framework.dart:5274:5)
#259    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#260    SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6442:14)
#261    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#262    SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6442:14)
#263    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#264    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#265    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#266    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#267    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#268    ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:5111:16)
#269    StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:5251:11)
#270    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#271    BuildOwner.buildScope
(package:flutter/src/widgets/framework.dart:2780:19)
#272    WidgetsBinding.drawFrame
(package:flutter/src/widgets/binding.dart:903:21)
#273    RendererBinding._handlePersistentFrameCallback
(package:flutter/src/rendering/binding.dart:358:5)
#274    SchedulerBinding._invokeFrameCallback
(package:flutter/src/scheduler/binding.dart:1284:15)
#275    SchedulerBinding.handleDrawFrame
(package:flutter/src/scheduler/binding.dart:1214:9)
#276    SchedulerBinding._handleDrawFrame
(package:flutter/src/scheduler/binding.dart:1072:5)
#277    _invoke (dart:ui/hooks.dart:142:13)
#278    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:359:5)
#279    _drawFrame (dart:ui/hooks.dart:112:31)

════════════════════════════════════════════════════════════════════════════════
════════════════════
g123k commented 10 months ago

Interesting, I will check that. @teolemon This morning, do you remember the error with the Mojito syrup? I think it was another one, isn't-it?