Skip to content

[Question]: Resolving web integration test failures on package_info_plus #3856

Description

@mahendrimd

What is your question?

As mentioned in PR #3848, the web_integration_test job is failing.

The root cause

Through environment testing, the root cause has been narrowed down to the Flutter version upgrade to 3.44.0.

When executing flutter drive on a CI environment with Flutter 3.44.0, the underlying Dart Web Debug Service (DWDS) fails to establish connection, resulting in the following crash:

ERROR: Instance of 'AppConnectionException'
#0      DevHandler._startLocalDebugService (package:dwds/src/handlers/dev_handler.dart:281:7)
<asynchronous suspension>
#1      DevHandler._createChromeAppServices (package:dwds/src/handlers/dev_handler.dart:363:26)
<asynchronous suspension>
#2      DevHandler.loadAppServices (package:dwds/src/handlers/dev_handler.dart:333:23)
<asynchronous suspension>
#3      DevHandler.createDebugConnectionForChrome (package:dwds/src/handlers/dev_handler.dart:654:30)
<asynchronous suspension>
#4      Dwds.debugConnection (package:dwds/dart_web_debug_service.dart:68:14)
<asynchronous suspension>
#5      WebDevFS.connect.<anonymous closure> (package:flutter_tools/src/isolated/devfs_web.dart:160:17)
<asynchronous suspension>

How this was verified

To isolate the framework regression from underlying Ubuntu image and Chromedriver updates, I compared three separate workflow execution paths:
Log 1: Workflow using Flutter 3.41.9 - Passed but stale (Chromedriver 147)
Log 2: Workflow using Flutter 3.44.0 - Failed (Chromedriver 148)
Log 3: Independent Test Log - Passed but stale. This test kept the updated Ubuntu 24.04 runner image from Log 2 using Chromedriver 148 but explicitly rolled Flutter back to 3.41.9, proving Flutter 3.44.0's is the breaking element.

This DWDS behavior on is an active topic tracked in flutter/flutter#181357 which also happen in 3.38.7.

Proposed approaches

I can see two options to resolve this issue.

Strategy Implementation Pros Cons
Option 1: Pin Flutter version Set version: 3.41.9 in setup-flutter and patch the 30-minute stale hanging job. Retains granular test descriptions in CI console logs. Keeps the web-specific pipeline bound to an older Flutter SDK layer.
Option 2: Modernize build target Keep latest Flutter, but append the --profile flag to flutter drive. (Simulation Log) Bypasses the fragile DWDS proxy layer entirely; allows using latest stable Flutter. Strips out granular test descriptions. Terminal output only prints a silent summary block.

Log Comparison Reference

Option 1 Verbose Target Output (Desired Visibility):

00:01 +2: Package Info Web Get correct values when response status is 200
00:01 +3: Package Info Web Get empty values when response status is not 200
00:01 +4: Package Info Web Get correct values when using a custom base URL
00:01 +5: Package Info Web Get correct versionJsonUrl for http and https
00:01 +6: Package Info Web Get correct versionJsonUrl for urls to html files
00:01 +7: Package Info Web Get correct versionJsonUrl for chrome-extension
00:01 +8: Package Info Web Get correct versionJsonUrl for file
00:01 +9: Package Info Web (using MockAssetManager) Get correct values when using the AssetManager baseUrl
00:01 +10: Package Info Web (using MockAssetManager) Has preference for the custom base URL over the other 2 locations
00:01 +11: (tearDownAll)
00:01 +12: All tests passed!

Option 2 Profile Target Output (Silent Run):

[+2375 ms] executing: /opt/hostedtoolcache/flutter/3.44.0/stable/flutter/bin/cache/dart-sdk/bin/dart ./integration_test/driver.dart
[+4262 ms] All tests passed.

Checklist before submitting a question

  • I searched issues in this repository and couldn't find such bug/problem
  • I Google'd a solution and I couldn't find it
  • I searched on StackOverflow for a solution and I couldn't find it
  • I read the README.md file of the plugin
  • I am using the latest version of the plugin
  • All dependencies are up to date with flutter pub upgrade
  • I did a flutter clean
  • I tried running the example project

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions