Skip to content

Scrollbar Exception caught by scheduler library #77609

Closed

Description

@aliyazdi75

This issue is related to declarative navigation 2 and Navigator.pages.
If I request a page by URL and that page has another page underneath which contains Scrollbar this error happens:

======== Exception caught by scheduler library =====================================================
The following TypeErrorImpl was thrown during a scheduler callback:
Unexpected null value.

When the exception was thrown, this was the stack: 
dart:sdk_internal 5041:11                                          throw_
dart:sdk_internal 5366:30                                          nullCheck
../packages/flutter/src/widgets/scroll_metrics.dart.lib.js 98:19   get maxScrollExtent
../packages/flutter/src/widgets/scrollbar.dart.lib.js 1304:34      [_handleScrollNotification]
../packages/flutter/src/widgets/widget_span.dart.lib.js 42486:59   [_dispatch]
...

My project is open source:
This is pages: https://github.com/aliyazdi75/gallery/blob/main/lib/presentation/screens/gallery/router.dart#L38
This is Scrollbar: https://github.com/aliyazdi75/gallery/blob/main/lib/presentation/screens/album/view/media/view/media.dart#L103

If I open the application by this URL: /gallery/album/album2?view=photo8
navigator.pages contains two pages: AlbumPage which has the Scrollbar and MediaFullscreenPage which is the front page.

Summary: If we open the application in a declarative way by the browser and it has a page underneath that contains Scrollbar this problem triggers.

Activity

  1. TahaTesser commented on Mar 9, 2021

    @TahaTesser
    Contributor

    Hi @aliyazdi75
    To better address the issue, Can you please provide your flutter doctor -v and flutter run --verbose logs, and a minimal complete reproducible code sample? instead of a project
    Thank you

  2. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Mar 9, 2021
  3. aliyazdi75 commented on Mar 9, 2021

    @aliyazdi75
    Author

    Hi @TahaTesser
    Implementing Navigation 2 it's not minimal at all 😄 , but I did my best to reproduce this issue.
    1- git clone [email protected]:5be066aa964b799fca66eebabec88c5f.git in a null-safety flutter project. Hosted here and scrollbar is here
    2- flutter run -d chrome --verbose
    3- Copy and paste to the end of the base and go to this URL: /book/0
    4- Exception:

    ======== Exception caught by scheduler library =====================================================
    The following TypeErrorImpl was thrown during a scheduler callback:
    Unexpected null value.
    
    When the exception was thrown, this was the stack: 
    dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49      throw_
    dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 518:63  nullCheck
    packages/flutter/src/widgets/scroll_metrics.dart 150:49                           get maxScrollExtent
    packages/flutter/src/widgets/scrollbar.dart 1099:16                               [_handleScrollNotification]
    packages/flutter/src/widgets/notification_listener.dart 206:27                    [_dispatch]
    ...
    ====================================================================================================
    
    --verbose output

    [  +74 ms] executing: uname -m
    [  +32 ms] Exit code 0 from: uname -m
    [        ] x86_64
    [  +17 ms] executing: [/home/aliyazdi75/snap/flutter/common/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
    [   +6 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
    [        ] 05ce6ce51153dd92d68092091a465170584d842f
    [        ] executing: [/home/aliyazdi75/snap/flutter/common/flutter/] git tag --points-at 05ce6ce51153dd92d68092091a465170584d842f
    [  +13 ms] Exit code 0 from: git tag --points-at 05ce6ce51153dd92d68092091a465170584d842f
    [   +1 ms] executing: [/home/aliyazdi75/snap/flutter/common/flutter/] git describe --match *.*.* --long --tags 05ce6ce51153dd92d68092091a465170584d842f
    [  +32 ms] Exit code 0 from: git describe --match *.*.* --long --tags 05ce6ce51153dd92d68092091a465170584d842f
    [        ] 2.1.0-10.0.pre-86-g05ce6ce511
    [  +47 ms] executing: [/home/aliyazdi75/snap/flutter/common/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
    [   +5 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
    [        ] origin/master
    [        ] executing: [/home/aliyazdi75/snap/flutter/common/flutter/] git ls-remote --get-url origin
    [   +5 ms] Exit code 0 from: git ls-remote --get-url origin
    [        ] https://github.com/flutter/flutter.git
    [  +49 ms] executing: [/home/aliyazdi75/snap/flutter/common/flutter/] git rev-parse --abbrev-ref HEAD
    [   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
    [        ] master
    [  +63 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
    [   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
    [  +73 ms] executing: /home/aliyazdi75/Android/Sdk/platform-tools/adb devices -l
    [  +48 ms] List of devices attached
    [   +6 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
    [   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
    [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
    [  +76 ms] Skipping pub get: version match.
    [ +133 ms] Generating /home/aliyazdi75/Documents/AndroidStudioProjects/flutter_app/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
    [ +185 ms] Launching lib/main.dart on Chrome in debug mode...
    [ +140 ms] Updating assets
    [ +120 ms] Waiting for connection from debug service on Chrome...
    [  +90 ms] <- reset
    [   +6 ms] /home/aliyazdi75/snap/flutter/common/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /home/aliyazdi75/snap/flutter/common/flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root
    /home/aliyazdi75/snap/flutter/common/flutter/bin/cache/flutter_web_sdk/ --incremental --target=dartdevc --debugger-module-names --experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill
    /tmp/flutter_tools.DRTAMU/flutter_tool.GBYQWZ/app.dill --libraries-spec file:///home/aliyazdi75/snap/flutter/common/flutter/bin/cache/flutter_web_sdk/libraries.json --packages
    /home/aliyazdi75/Documents/AndroidStudioProjects/flutter_app/.dart_tool/package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --filesystem-root
    /tmp/flutter_tools.DRTAMU/flutter_tools.NSVIHJ --filesystem-scheme org-dartlang-app --initialize-from-dill build/b1b715402d823b7fd5c2b68d2edcb2ce.cache.dill.track.dill --platform
    file:///home/aliyazdi75/snap/flutter/common/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill --sound-null-safety
    [  +28 ms] <- compile org-dartlang-app:/web_entrypoint.dart
    [+24839 ms] Waiting for connection from debug service on Chrome... (completed in 24.9s)
    [   +1 ms] Synced 29.1MB.
    [  +20 ms] <- accept
    [        ] Caching compiled dill
    [ +293 ms] Using Google Chrome 89.0.4389.82 
    
    [ +435 ms] [CHROME]:
    [        ] [CHROME]:DevTools listening on ws://127.0.0.1:44903/devtools/browser/8940119f-4b8a-4863-86e1-fcd79cc4f87e
    [ +641 ms] DwdsInjector: Received request for entrypoint at http://localhost:45071/main_module.bootstrap.js
    [  +38 ms] MetadataProvider: Loading debug metadata...
    [  +52 ms] MetadataProvider: Loaded debug metadata (sound null safety)
    [  +13 ms] DwdsInjector: Injected debugging metadata for entrypoint at http://localhost:45071/main_module.bootstrap.js
    [+3475 ms] ChromeProxyService: Initializing expression compiler for main_module.bootstrap.js with sound null safety: true
    [ +791 ms] DevHandler: Debug service listening on ws://127.0.0.1:45815/2Hwa9akqGmo=/ws
    
    [  +12 ms] Debug service listening on ws://127.0.0.1:45815/2Hwa9akqGmo=/ws
    [        ] 💪 Running with sound null safety 💪
    [   +5 ms] 🔥  To hot restart changes while running, press "r" or "R".
    [        ] For a more detailed help message, press "h". To quit, press "q".
    [+97428 ms] DwdsInjector: Received request for entrypoint at http://localhost:45071/main_module.bootstrap.js
    [        ] MetadataProvider: Loading debug metadata...
    [   +9 ms] MetadataProvider: Loaded debug metadata (sound null safety)
    [   +5 ms] DwdsInjector: Injected debugging metadata for entrypoint at http://localhost:45071/main_module.bootstrap.js
    [+2267 ms] ChromeProxyService: Initializing expression compiler for main_module.bootstrap.js with sound null safety: true
    [+3174 ms] ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
    [  +23 ms] The following TypeErrorImpl was thrown during a scheduler callback:
    [        ] Unexpected null value.
    [        ] When the exception was thrown, this was the stack:
    [        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49      throw_
    [        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 518:63  nullCheck
    [        ] packages/flutter/src/widgets/scroll_metrics.dart 150:49                           get maxScrollExtent
    [        ] packages/flutter/src/widgets/scrollbar.dart 1099:16                               [_handleScrollNotification]
    [        ] packages/flutter/src/widgets/notification_listener.dart 206:27                    [_dispatch]
    [  +19 ms] packages/flutter/src/widgets/notification_listener.dart 122:19                    visitAncestor
    [   +4 ms] packages/flutter/src/widgets/scroll_notification.dart 31:18                       visitAncestor
    [        ] packages/flutter/src/widgets/framework.dart 4037:39                               visitAncestorElements
    [        ] packages/flutter/src/widgets/notification_listener.dart 138:13                    dispatch
    [        ] packages/flutter/src/widgets/scroll_activity.dart 94:90                           dispatchScrollUpdateNotification
    [        ] packages/flutter/src/widgets/scroll_position.dart 870:5                           didUpdateScrollPositionBy
    [        ] packages/flutter/src/widgets/scrollbar.dart 908:25                                <fn>
    [   +9 ms] packages/flutter/src/scheduler/binding.dart 1144:15                               [_invokeFrameCallback]
    [   +5 ms] packages/flutter/src/scheduler/binding.dart 1090:9                                handleDrawFrame
    [        ] packages/flutter/src/scheduler/binding.dart 865:7                                 <fn>
    [        ] dart-sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart 48:19           internalCallback
    [        ] ════════════════════════════════════════════════════════════════════════════════════════════════════
    

    flutter doctor -v output

    [✓] Flutter (Channel master, 2.1.0-11.0.pre.86, on Linux, locale en_US.UTF-8)
        • Flutter version 2.1.0-11.0.pre.86 at /home/aliyazdi75/snap/flutter/common/flutter
        • Framework revision 05ce6ce511 (6 days ago), 2021-03-03 11:04:02 -0800
        • Engine revision cd0e54348b
        • Dart version 2.13.0 (build 2.13.0-93.0.dev)
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
        • Android SDK at /home/aliyazdi75/Android/Sdk
        • Platform android-30, build-tools 30.0.3
        • Java binary at: /home/aliyazdi75/Application/android-studio/jre/bin/java
        • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
        • All Android licenses accepted.
    
    [✓] Chrome - develop for the web
        • Chrome at google-chrome
    
    [✓] Linux toolchain - develop for Linux desktop
        • clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
        • cmake version 3.10.2
        • ninja version 1.8.2
        • pkg-config version 0.29.1
    
    [✓] Android Studio (version 4.1)
        • Android Studio at /home/aliyazdi75/Application/android-studio
        • Flutter plugin version 54.0.1
        • Dart plugin version 201.9335
        • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    
    [✓] Connected device (2 available)
        • Linux (desktop) • linux  • linux-x64      • Linux
        • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.82
    
    • No issues found!
    

  4. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Mar 9, 2021
  5. TahaTesser commented on Mar 10, 2021

    @TahaTesser
    Contributor

    Hi @aliyazdi75
    Thanks for the code sample, I can reproduce the issue. No exception without scrollbar

    code sample
    import 'package:flutter/foundation.dart';
    import 'package:flutter/material.dart';
    
    void main() {
      runApp(BooksApp());
    }
    
    class Book {
      final String title;
      final String author;
    
      Book(this.title, this.author);
    }
    
    class BooksApp extends StatefulWidget {
      @override
      State<StatefulWidget> createState() => _BooksAppState();
    }
    
    class _BooksAppState extends State<BooksApp> {
      BookRouterDelegate _routerDelegate = BookRouterDelegate();
      BookRouteInformationParser _routeInformationParser =
          BookRouteInformationParser();
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp.router(
          title: 'Books App',
          routerDelegate: _routerDelegate,
          routeInformationParser: _routeInformationParser,
        );
      }
    }
    
    class BookRouteInformationParser extends RouteInformationParser<BookRoutePath> {
      @override
      Future<BookRoutePath> parseRouteInformation(
          RouteInformation routeInformation) {
        final uri = Uri.parse(routeInformation.location!);
        // Handle '/'
        if (uri.pathSegments.length == 0) {
          return SynchronousFuture(BookRoutePath.home());
        }
    
        // Handle '/book/:id'
        if (uri.pathSegments.length == 2) {
          if (uri.pathSegments[0] != 'book')
            return SynchronousFuture(BookRoutePath.unknown());
          var remaining = uri.pathSegments[1];
          var id = int.tryParse(remaining);
          if (id == null) return SynchronousFuture(BookRoutePath.unknown());
          return SynchronousFuture(BookRoutePath.details(id));
        }
    
        // Handle unknown routes
        return SynchronousFuture(BookRoutePath.unknown());
      }
    
      @override
      RouteInformation? restoreRouteInformation(BookRoutePath path) {
        if (path.isUnknown) {
          return RouteInformation(location: '/404');
        }
        if (path.isHomePage) {
          return RouteInformation(location: '/');
        }
        if (path.isDetailsPage) {
          return RouteInformation(location: '/book/${path.id}');
        }
        return null;
      }
    }
    
    class BookRouterDelegate extends RouterDelegate<BookRoutePath>
        with ChangeNotifier, PopNavigatorRouterDelegateMixin<BookRoutePath> {
      final GlobalKey<NavigatorState> navigatorKey;
    
      Book? _selectedBook;
      bool show404 = false;
    
      List<Book> books = [
        Book('Stranger in a Strange Land', 'Robert A. Heinlein'),
        Book('Foundation', 'Isaac Asimov'),
        Book('Fahrenheit 451', 'Ray Bradbury'),
      ];
    
      BookRouterDelegate() : navigatorKey = GlobalKey<NavigatorState>();
    
      BookRoutePath get currentConfiguration {
        if (show404) {
          return BookRoutePath.unknown();
        }
        return _selectedBook == null
            ? BookRoutePath.home()
            : BookRoutePath.details(books.indexOf(_selectedBook!));
      }
    
      @override
      Widget build(BuildContext context) {
        return Navigator(
          key: navigatorKey,
          pages: [
            MaterialPage(
              key: ValueKey('BooksListPage'),
              child: BooksListScreen(
                books: books,
                onTapped: _handleBookTapped,
              ),
            ),
            if (show404)
              MaterialPage(key: ValueKey('UnknownPage'), child: UnknownScreen())
            else if (_selectedBook != null)
              BookDetailsPage(book: _selectedBook!)
          ],
          onPopPage: (route, result) {
            if (!route.didPop(result)) {
              return false;
            }
    
            // Update the list of pages by setting _selectedBook to null
            _selectedBook = null;
            show404 = false;
            notifyListeners();
    
            return true;
          },
        );
      }
    
      @override
      Future<void> setNewRoutePath(BookRoutePath path) {
        if (path.isUnknown) {
          _selectedBook = null;
          show404 = true;
          return SynchronousFuture<void>(null);
        }
    
        if (path.isDetailsPage) {
          if (path.id! < 0 || path.id! > books.length - 1) {
            show404 = true;
            return SynchronousFuture<void>(null);
          }
    
          _selectedBook = books[path.id!];
        } else {
          _selectedBook = null;
        }
    
        show404 = false;
        return SynchronousFuture<void>(null);
      }
    
      void _handleBookTapped(Book book) {
        _selectedBook = book;
        notifyListeners();
      }
    }
    
    class BookDetailsPage extends Page {
      final Book book;
    
      BookDetailsPage({
        required this.book,
      }) : super(key: ValueKey(book));
    
      Route createRoute(BuildContext context) {
        return MaterialPageRoute(
          settings: this,
          builder: (BuildContext context) {
            return BookDetailsScreen(book: book);
          },
        );
      }
    }
    
    class BookRoutePath {
      final int? id;
      final bool isUnknown;
    
      BookRoutePath.home()
          : id = null,
            isUnknown = false;
    
      BookRoutePath.details(this.id) : isUnknown = false;
    
      BookRoutePath.unknown()
          : id = null,
            isUnknown = true;
    
      bool get isHomePage => id == null;
    
      bool get isDetailsPage => id != null;
    }
    
    class BooksListScreen extends StatefulWidget {
      final List<Book> books;
      final ValueChanged<Book> onTapped;
    
      BooksListScreen({
        required this.books,
        required this.onTapped,
      });
    
      @override
      _BooksListScreenState createState() => _BooksListScreenState();
    }
    
    class _BooksListScreenState extends State<BooksListScreen> {
      late ScrollController _scrollController;
    
      @override
      void initState() {
        super.initState();
        _scrollController = ScrollController();
      }
    
      @override
      void dispose() {
        _scrollController.dispose();
        super.dispose();
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Scrollbar(
            controller: _scrollController,
            showTrackOnHover: true,
            isAlwaysShown: true,
            child: ListView(
              controller: _scrollController,
              children: widget.books
                  .map<Widget>((book) => ListTile(
                        title: Text(book.title),
                        subtitle: Text(book.author),
                        onTap: () => widget.onTapped(book),
                      ))
                  .toList(),
            ),
          ),
        );
      }
    }
    
    class BookDetailsScreen extends StatelessWidget {
      final Book book;
    
      BookDetailsScreen({
        required this.book,
      });
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Padding(
            padding: const EdgeInsets.all(8.0),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(book.title, style: Theme.of(context).textTheme.headline6),
                Text(book.author, style: Theme.of(context).textTheme.subtitle1),
              ],
            ),
          ),
        );
      }
    }
    
    class UnknownScreen extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Center(
            child: Text('404!'),
          ),
        );
      }
    }
    logs
    [  +35 ms] Running "flutter pub get" in stable_flutter... (completed in 1,082ms)
    [ +107 ms] Generating
    /home/taha/AndroidStudioProjects/stable_flutter/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegi
    strant.java
    [ +175 ms] Launching lib/main.dart on Chrome in debug mode...
    [  +74 ms] Updating assets
    [  +67 ms] Waiting for connection from debug service on Chrome...
    [  +80 ms] <- reset
    [   +8 ms] /home/taha/Code/flutter_stable/bin/cache/dart-sdk/bin/dart --disable-dart-dev
    /home/taha/Code/flutter_stable/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root
    /home/taha/Code/flutter_stable/bin/cache/flutter_web_sdk/ --incremental --target=dartdevc
    --debugger-module-names --experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill
    /tmp/flutter_tools.QTXJPZ/flutter_tool.SWLGNV/app.dill --libraries-spec
    file:///home/taha/Code/flutter_stable/bin/cache/flutter_web_sdk/libraries.json --packages
    /home/taha/AndroidStudioProjects/stable_flutter/.dart_tool/package_config.json -Ddart.vm.profile=false
    -Ddart.vm.product=false --enable-asserts --track-widget-creation --filesystem-root
    /tmp/flutter_tools.QTXJPZ/flutter_tools.GSBIYG --filesystem-scheme org-dartlang-app --initialize-from-dill
    build/b1b715402d823b7fd5c2b68d2edcb2ce.cache.dill.track.dill --platform
    file:///home/taha/Code/flutter_stable/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill
    --sound-null-safety
    [   +8 ms] <- compile org-dartlang-app:/web_entrypoint.dart
    [+12025 ms] Waiting for connection from debug service on Chrome... (completed in 12.1s)
    [        ] Synced 28.9MB.
    [        ] <- accept
    [        ] Caching compiled dill
    [ +133 ms] Using Chromium 89.0.4389.82 snap
    
    [ +141 ms] [CHROME]:Gtk-Message: 13:18:20.250: Failed to load module "appmenu-gtk-module"
    [  +58 ms] [CHROME]:
    [        ] [CHROME]:DevTools listening on
    ws://127.0.0.1:43383/devtools/browser/08e79b77-a62a-45c2-9156-6c02160cf4f7
    [ +244 ms] DwdsInjector: Received request for entrypoint at http://localhost:42897/main_module.bootstrap.js
    [   +3 ms] MetadataProvider: Loading debug metadata...
    [  +12 ms] MetadataProvider: Loaded debug metadata
    [   +9 ms] DwdsInjector: Injected debugging metadata for entrypoint at
    http://localhost:42897/main_module.bootstrap.js
    [+1677 ms] DevHandler: Debug service listening on ws://127.0.0.1:36585/NyCQP1URENI=/ws
    
    [   +6 ms] Debug service listening on ws://127.0.0.1:36585/NyCQP1URENI=/ws
    [        ] 💪 Running with sound null safety 💪
    [   +1 ms] 🔥  To hot restart changes while running, press "r" or "R".
    [        ] For a more detailed help message, press "h". To quit, press "q".
    [+27325 ms] DwdsInjector: Received request for entrypoint at http://localhost:42897/main_module.bootstrap.js
    [        ] MetadataProvider: Loading debug metadata...
    [   +4 ms] MetadataProvider: Loaded debug metadata
    [   +1 ms] DwdsInjector: Injected debugging metadata for entrypoint at
    http://localhost:42897/main_module.bootstrap.js
    [+3312 ms] ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
    [   +2 ms] The following TypeErrorImpl was thrown during a scheduler callback:
    [        ] Unexpected null value.
    [        ] When the exception was thrown, this was the stack:
    [        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49      throw_
    [        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 518:63  nullCheck
    [        ] packages/flutter/src/widgets/scroll_metrics.dart 150:49                           get maxScrollExtent
    [        ] packages/flutter/src/widgets/scrollbar.dart 1053:16
    [_handleScrollNotification]
    [        ] packages/flutter/src/widgets/notification_listener.dart 206:27                    [_dispatch]
    [        ] packages/flutter/src/widgets/notification_listener.dart 122:19                    visitAncestor
    [        ] packages/flutter/src/widgets/scroll_notification.dart 31:18                       visitAncestor
    [        ] packages/flutter/src/widgets/framework.dart 3966:39
    visitAncestorElements
    [        ] packages/flutter/src/widgets/notification_listener.dart 138:13                    dispatch
    [        ] packages/flutter/src/widgets/scroll_activity.dart 94:90
               dispatchScrollUpdateNotification
    [        ] packages/flutter/src/widgets/scroll_position.dart 870:5
    didUpdateScrollPositionBy
    [        ] packages/flutter/src/widgets/scrollbar.dart 862:25                                <fn>
    [        ] packages/flutter/src/scheduler/binding.dart 1144:15
    [_invokeFrameCallback]
    [        ] packages/flutter/src/scheduler/binding.dart 1090:9                                handleDrawFrame
    [        ] packages/flutter/src/scheduler/binding.dart 865:7                                 <fn>
    [        ] dart-sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart 48:19           internalCallback
    [        ] ════════════════════════════════════════════════════════════════════════════════════════════════════
    flutter doctor -v
    [✓] Flutter (Channel stable, 2.0.1, on Linux, locale en_CA.UTF-8)
        • Flutter version 2.0.1 at /home/taha/Code/flutter_stable
        • Framework revision c5a4b4029c (6 days ago), 2021-03-04 09:47:48 -0800
        • Engine revision 40441def69
        • Dart version 2.12.0
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
        • Android SDK at /home/taha/Code/SDK
        • Platform android-30, build-tools 30.0.3
        • ANDROID_HOME = /home/taha/Code/SDK
        • Java binary at: /home/taha/Code/android-studio/jre/bin/java
        • Java version OpenJDK Runtime Environment (build
          1.8.0_242-release-1644-b3-6222593)
        • All Android licenses accepted.
    
    [✓] Chrome - develop for the web
        • CHROME_EXECUTABLE = /snap/bin/chromium
    
    [✓] Linux toolchain - develop for Linux desktop
        • Ubuntu clang version 11.0.0-2
        • cmake version 3.16.3
        • ninja version 1.10.0
        • pkg-config version 0.29.2
    
    [!] Android Studio (not installed)
        • Android Studio not found; download from
          https://developer.android.com/studio/index.html
          (or visit https://flutter.dev/docs/get-started/install/linux#android-setup
          for detailed instructions).
    
    [✓] VS Code (version 1.54.1)
        • VS Code at /usr/share/code
        • Flutter extension version 3.20.0
    
    [✓] Connected device (2 available)
        • Linux (desktop) • linux  • linux-x64      • Linux
        • Chrome (web)    • chrome • web-javascript • Chromium 89.0.4389.82 snap
    
    ! Doctor found issues in 1 category.
    [✓] Flutter (Channel master, 2.1.0-11.0.pre.179, on Linux, locale en_CA.UTF-8)
        • Flutter version 2.1.0-11.0.pre.179 at /home/taha/Code/flutter_master
        • Framework revision 07e04484ea (4 hours ago), 2021-03-09 20:10:05 -0800
        • Engine revision 7764b5c55f
        • Dart version 2.13.0 (build 2.13.0-116.0.dev)
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
        • Android SDK at /home/taha/Code/SDK
        • Platform android-30, build-tools 30.0.3
        • ANDROID_HOME = /home/taha/Code/SDK
        • Java binary at: /home/taha/Code/android-studio/jre/bin/java
        • Java version OpenJDK Runtime Environment (build
          1.8.0_242-release-1644-b3-6222593)
        • All Android licenses accepted.
    
    [✓] Chrome - develop for the web
        • CHROME_EXECUTABLE = /snap/bin/chromium
    
    [✓] Linux toolchain - develop for Linux desktop
        • Ubuntu clang version 11.0.0-2
        • cmake version 3.16.3
        • ninja version 1.10.0
        • pkg-config version 0.29.2
    
    [✓] Android Studio (version 4.1)
        • Android Studio at /home/taha/Code/android-studio
        • Flutter plugin version 54.0.1
        • Dart plugin version 201.9335
        • Java version OpenJDK Runtime Environment (build
          1.8.0_242-release-1644-b3-6222593)
    
    [✓] VS Code (version 1.54.1)
        • VS Code at /usr/share/code
        • Flutter extension version 3.20.0
    
    [✓] Connected device (2 available)
        • Linux (desktop) • linux  • linux-x64      • Linux
        • Chrome (web)    • chrome • web-javascript • Chromium 89.0.4389.82 snap
    
    • No issues found!

    Thank you

  6. added
    p: material_uimaterial_ui package in flutter/packages
    frameworkflutter/packages/flutter repository. See also f: labels.
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    f: routesNavigator, Router, and related APIs.
    and removed
    in triagePresently being triaged by the triage team
    on Mar 10, 2021
  7. aliyazdi75 commented on Mar 11, 2021

    @aliyazdi75
    Author

    @TahaTesser I think adding nnbd tag is useful.

  8. flutter-triage-bot commented on Dec 5, 2024

    @flutter-triage-bot

    This issue is missing a priority label. Please set a priority label when adding the triaged-design label.

  9. Piinks commented on Dec 11, 2024

    @Piinks
    Contributor

    We think this is fixed, if it can still be reproduced, please file a new issue with an updated reproduction. Thank you!

  10. github-actions commented on Dec 25, 2024

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  11. locked as resolved and limited conversation to collaborators on Dec 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    a: null-safetySupport for Dart's null safety featuref: routesNavigator, Router, and related APIs.found in release: 2.0Found to occur in 2.0found in release: 2.1Found to occur in 2.1frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onp: material_uimaterial_ui package in flutter/packagesteam-designOwned by Design Languages team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions