Skip to content

fix: embedding Flutter App that uses riverpod fails #724

@nietsmmar

Description

@nietsmmar

Description

After removing matomo as dependency from my app to check if embedding works without it (see this issue) I got another error. Apparently it has to do with gorouter and riverpod. I set up a minimal reproducible example below.

Error

Uncaught Error from backend:

Error: Bad state: Not connected to an application.

Stack Trace:
#0      DevHandler._handleConnection.<anonymous closure> (package:dwds/src/handlers/dev_handler.dart:275:13)
#1      _rootRunUnary (dart:async/zone.dart:1546:13)
#2      _RootZone.runUnaryGuarded (dart:async/zone.dart:1781:7)
#3      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381:11)
#4      _DelayedData.perform (dart:async/stream_impl.dart:573:14)
#5      _PendingEvents.handleNext (dart:async/stream_impl.dart:678:11)
#6      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649:7)
#7      StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:207:15)
#8      StackZoneSpecification._registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:114:48)
#9      _rootRun (dart:async/zone.dart:1517:47)
#10     _CustomZone.run (dart:async/zone.dart:1422:19)
#11     _CustomZone.runGuarded (dart:async/zone.dart:1321:7)
#12     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362:23)
#13     StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:207:15)
#14     StackZoneSpecification._registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:114:48)
#15     _rootRun (dart:async/zone.dart:1525:13)
#16     _CustomZone.run (dart:async/zone.dart:1422:19)
#17     _CustomZone.runGuarded (dart:async/zone.dart:1321:7)
#18     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362:23)
#19     _microtaskLoop (dart:async/schedule_microtask.dart:40:35)
#20     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
#21     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:127:13)
#22     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:194:5)
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
The following StateError was thrown building MyApp(dirty, state: _ConsumerState#57276): [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
Bad state: No ProviderScope found [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
<empty string> [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
The relevant error-causing widget was: [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
  MyApp MyApp:org-dartlang-app:///packages/articlett_schule_webpage/pages/test.dart:22:28 [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
<empty string> [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
When the exception was thrown, this was the stack: [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 223:26  DartError [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 274:3   throw_ [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter_riverpod/src/core/provider_scope.dart 105:7                           containerOf [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter_riverpod/src/core/consumer.dart 512:59                                read [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter_test_app/main.dart 27:24                                              build [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter_riverpod/src/core/consumer.dart 283:48                                build [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 5934:27                                    build [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter_riverpod/src/core/consumer.dart 421:20                                build [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 5820:15                                    performRebuild [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 5985:11                                    performRebuild [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 5532:7                                     rebuild [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 5802:5                                     [_firstBuild] [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 5976:11                                    [_firstBuild] [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 5796:5                                     mount [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
...     Normal element mounting (71 frames) [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 4590:19                                    inflateWidget [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 4059:18                                    updateChild [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/view.dart 481:16                                          [_updateChild] [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/view.dart 504:5                                           mount [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
...     Normal element mounting (15 frames) [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 4590:19                                    inflateWidget [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 4059:18                                    updateChild [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 4258:32                                    updateChildren [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/view.dart 837:21                                          performRebuild [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 5532:7                                     rebuild [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/view.dart 761:5                                           mount [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
...     Normal element mounting (9 frames) [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 4590:19                                    inflateWidget [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 4059:18                                    updateChild [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/binding.dart 1782:16                                      [_rebuild] [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/binding.dart 1751:5                                       mount [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/binding.dart 1704:16                                      <fn> [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/framework.dart 3101:11                                    buildScope [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/binding.dart 1703:12                                      attach [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/binding.dart 1379:26                                      attachToBuildOwner [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/binding.dart 1364:5                                       attachRootWidget [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:flutter/src/widgets/binding.dart 1350:7                                       <fn> [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:dart-sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart 47:11       internalCallback [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:dart-sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart 54:9        <fn> [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
package:dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 199:12           _createTimer [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
<empty string> [js_primitives.dart:28:5](http://localhost:8080/packages/dart-sdk/lib/_internal/js_dev_runtime/private/js_primitives.dart)
════════════════════════════════════════════════════════════════════════════════════════════════════
Image

Steps To Reproduce

  1. git clone https://github.com/nietsmmar/jaspr_test.git
  2. git switch no_matomo_gorouter_riverpod
  3. run jaspr serve
  4. navigate to test page
  5. check dev-tools output in browser console

Doctor Output

[✓] Jaspr CLI (Version 0.22.1)
  • Dart Version 3.10.4 (stable) (Tue Dec 9 00:01:55 2025 -0800) on "linux_x64" at /home/xunil/dev/flutter/bin/cache/dart-sdk/bin/dart
  • Running on linux Linux 6.12.63 #1-NixOS SMP PREEMPT_DYNAMIC Thu Dec 18 12:55:23 UTC 2025 - Locale en_US.UTF-8
  • Analytics: Enabled
[✓] Current Project
  • Dependencies on core packages:
    • jaspr: ^0.22.1
    • jaspr_builder: ^0.22.1 (dev)
    • jaspr_flutter_embed: ^0.4.10
    • jaspr_router: ^0.8.1
  • Rendering mode: static
  • Flutter mode: embedded

Expected Behavior

Embedded flutter app shows

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions