Skip to content

Conversation

@bkonyi
Copy link
Contributor

@bkonyi bkonyi commented Dec 1, 2025

This pull request is created by automatic cherry pick workflow
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

Issue Link:

What is the link to the issue this cherry-pick is addressing?

#156692

Changelog Description:

Explain this cherry pick in one line that is accessible to most Flutter developers. See best practices for examples

flutter attach can crash if the target application disconnects unexpectedly.

Impact Description:

What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)

The flutter attach process could crash when trying to attach to a new target after the initial target disappeared unexpectedly. This could result in an error popup in IDEs or an obvious crash on the CLI. This is a top-10 crasher for the tool.

Workaround:

Is there a workaround for this issue?

N/A

Risk:

What is the risk level of this cherry-pick?

  • Low
  • Medium
  • High

Test Coverage:

Are you confident that your fix is well-tested by automated tests?

  • Yes
  • No

Validation Steps:

What are the steps to validate that this fix works?

  1. Run flutter run to deploy to an Android or iOS device.
  2. Run flutter attach to connect to the running application.
  3. Kill the running application by pressing q in the flutter run terminal.
  4. The flutter attach process should simply exit with no crash.

Before this change, there was logic in `flutter attach` that would try
and listen for a new application to attach to in the scenario the
current target application disappeared. This behavior isn't documented,
and has resulted in a `StateError` being thrown due to the VM service
URIs stream being listened to multiple times.

This change removes this behavior, which also prevents the `StateError`
from being thrown.

Fixes #156692, which is a
top-10 crasher for the tool.
@bkonyi bkonyi added the cp: review Cherry-picks in the review queue label Dec 1, 2025
@flutter-dashboard
Copy link

This pull request was opened from and to a release candidate branch. This should only be done as part of the official Flutter release process. If you are attempting to make a regular contribution to the Flutter project, please close this PR and follow the instructions at Tree Hygiene for detailed instructions on contributing to Flutter.

Reviewers: Use caution before merging pull requests to release branches. Ensure the proper procedure has been followed.

@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Dec 1, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a cherry-pick that fixes a crash in flutter attach when the target application disconnects. The core of the change is the removal of the automatic re-attachment logic, which was causing the crash. The code has been refactored for better clarity by splitting a large method into smaller, more focused ones. Additionally, several methods have been updated to return non-nullable integers, improving type safety. A new regression test has been added to ensure the fix is effective. The changes are well-structured and directly address the reported issue.

@eyebrowsoffire eyebrowsoffire added the autosubmit Merge PR when tree becomes green via auto submit App label Dec 2, 2025
@auto-submit auto-submit bot merged commit 4f02025 into flutter-3.38-candidate.0 Dec 2, 2025
146 checks passed
@auto-submit auto-submit bot deleted the cp_fix_156692_stable branch December 2, 2025 18:56
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 4, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App cp: review Cherry-picks in the review queue tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants