Skip to content

Fix RawAutocomplete crash when options are hidden - #182785

Merged
auto-submit[bot] merged 5 commits into
flutter:masterfrom
mbcorona:fix/rawautocomplete-crash
Feb 26, 2026
Merged

auto-submit[bot] merged 5 commits into
flutter:masterfrom
mbcorona:fix/rawautocomplete-crash

Conversation

@mbcorona

Copy link
Copy Markdown
Member

Description

This PR fixes an assertion crash in RawAutocomplete that occurs when the widget is recreated and attempts to hide an overlay that was never shown.

This is a regression introduced by caa84ba which modified the _canShowOptionsView getter (removing the _selection == null check).

The fix ensures hide() is only called if the options view is actually visible by using else if (_optionsViewController.isShowing).

Related Issues

Fixes #182267

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

@github-actions github-actions Bot added the framework flutter/packages/flutter repository. See also f: labels. label Feb 23, 2026

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

Copy link
Copy Markdown
Contributor

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 effectively resolves a crash in RawAutocomplete that occurred when the widget was recreated while its options view was hidden. The fix, which involves checking if the options view is showing before attempting to hide it, is a direct and correct solution to prevent the underlying assertion failure. The inclusion of a new regression test is commendable, as it accurately reproduces the crash scenario and verifies that the fix works as intended. The changes are well-implemented and improve the widget's stability.

@mbcorona
mbcorona requested a review from victorsanni February 23, 2026 20:34
Comment thread packages/flutter/test/widgets/autocomplete_test.dart Outdated
Comment thread packages/flutter/test/widgets/autocomplete_test.dart Outdated
Comment thread packages/flutter/test/widgets/autocomplete_test.dart Outdated
@mbcorona
mbcorona force-pushed the fix/rawautocomplete-crash branch from df1a788 to d82978a Compare February 25, 2026 17:45
@mbcorona
mbcorona requested a review from victorsanni February 25, 2026 20:55
Comment thread packages/flutter/test/widgets/autocomplete_test.dart
@victorsanni victorsanni added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 25, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Feb 26, 2026
Merged via the queue into flutter:master with commit f209588 Feb 26, 2026
73 of 74 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Feb 26, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 26, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 26, 2026
ahmedsameha1 pushed a commit to ahmedsameha1/flutter that referenced this pull request Feb 27, 2026
## Description
This PR fixes an assertion crash in `RawAutocomplete` that occurs when
the widget is recreated and attempts to hide an overlay that was never
shown.

This is a regression introduced by
flutter/flutter@caa84ba which modified
the `_canShowOptionsView` getter (removing the `_selection == null`
check).

The fix ensures `hide()` is only called if the options view is actually
visible by using `else if (_optionsViewController.isShowing)`.

## Related Issues
Fixes flutter#182267

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

---------

Co-authored-by: Victor Sanni <[email protected]>
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 27, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 27, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Feb 27, 2026
Roll Flutter from b31548feb941 to 1141b2bdce66 (56 revisions)

flutter/flutter@b31548f...1141b2b

2026-02-27 [email protected] flutter#182361 Fix delegate copy on plugins init (flutter/flutter#182362)
2026-02-27 [email protected] Roll Dart SDK from 8b036b3e63cb to 1cdb7dfd913e (1 revision) (flutter/flutter#183004)
2026-02-27 [email protected] Manual roll Dart SDK to 3.12.0-192.0.dev (flutter/flutter#182883)
2026-02-27 [email protected] Roll Skia from e2062707b0c0 to ed220c490eea (1 revision) (flutter/flutter#182992)
2026-02-27 [email protected] Roll Skia from e5aa1ab5c59c to e2062707b0c0 (3 revisions) (flutter/flutter#182989)
2026-02-27 [email protected] Linux build hooks: Read compiler config from CMakeCache.txt (flutter/flutter#181004)
2026-02-27 [email protected] Roll ICU from a86a32e67b8d to 7971660ba630 (3 revisions) (flutter/flutter#182986)
2026-02-27 [email protected] Roll Skia from 49c2de95384e to e5aa1ab5c59c (2 revisions) (flutter/flutter#182980)
2026-02-27 [email protected] [Impeller] Remove shared rendering data from TextFrame (flutter/flutter#182886)
2026-02-27 [email protected] Add fl_view_new_sized_to_content() (flutter/flutter#182924)
2026-02-27 [email protected] [Shortcuts] Improve focus node debug labels (flutter/flutter#181834)
2026-02-27 [email protected] Add a cli flag for toggling HCPP use, and enable it (flutter/flutter#182516)
2026-02-27 [email protected] `SizedBox.square()` (flutter/flutter#182731)
2026-02-27 [email protected] [web] Fix stack corruption in Skwasm and harden withStackScope API (flutter/flutter#182912)
2026-02-26 [email protected] Roll zlib to 7eda07b1e067 (flutter/flutter#182692)
2026-02-26 [email protected] [ CI ] Don't crash analysis when ktlint isn't on PATH (flutter/flutter#181854)
2026-02-26 [email protected] Add calls to await `flutterDriver.waitUntilFirstFrameRasterized()` for all `android_engine_test` screenshot tests (flutter/flutter#182961)
2026-02-26 [email protected] Roll Skia from f44d7db68805 to 49c2de95384e (30 revisions) (flutter/flutter#182957)
2026-02-26 [email protected] Support sending window constraints in metrics events (flutter/flutter#182921)
2026-02-26 [email protected] Reland: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182891)
2026-02-26 [email protected] Remove some instances of useMaterial3: true (flutter/flutter#182944)
2026-02-26 [email protected] [Impeller] Use bilinear filtering for non-uniform scaled text (flutter/flutter#182224)
2026-02-26 [email protected] Add a ResidentCompilerFactory to create ResidentCompiler instances. (flutter/flutter#182930)
2026-02-26 [email protected] Add a getter in run.dart to access use-application-binary flag. (flutter/flutter#182931)
2026-02-26 [email protected] [web] Roll Firefox to 148 (flutter/flutter#182859)
2026-02-26 [email protected] Roll Packages from acd9adb to e1d0169 (8 revisions) (flutter/flutter#182946)
2026-02-26 [email protected] Roll Fuchsia Linux SDK from XI0Ax7fbtYE4XKYAQ... to G1GwOdVt5bM7GjMSY... (flutter/flutter#182942)
2026-02-26 [email protected] Add test for WindowPositioner.toString (flutter/flutter#182906)
2026-02-26 [email protected] Remove unused function prototype (flutter/flutter#182915)
2026-02-26 [email protected] Resolve inconsistency with SchedulerBinding.scheduleTask usage recomm… (flutter/flutter#182531)
2026-02-26 [email protected] Fix false positives for hit test misses in flutter_test (flutter/flutter#180856)
2026-02-26 [email protected] Replace an instance of flutter/engine with flutter/flutter (flutter/flutter#182655)
2026-02-26 [email protected] Use null-aware elements in widgets/routes.dart (flutter/flutter#181242)
2026-02-26 [email protected] Fix typos in method names across multiple files (flutter/flutter#182584)
2026-02-26 [email protected] Fix RawAutocomplete crash when options are hidden (flutter/flutter#182785)
2026-02-26 [email protected] Describe implications of tree-status and Google Testing for PRs (flutter/flutter#182916)
2026-02-26 [email protected] Make sure that a StretchingOverscrollIndicator doesn't crash when it … (flutter/flutter#182499)
2026-02-26 [email protected] framework: Use a super-parameter in several missed cases (flutter/flutter#182580)
2026-02-25 [email protected] `WidgetStatesConstraint` as a mixin (flutter/flutter#181704)
2026-02-25 [email protected] Paint the paragraph as a single image (flutter/flutter#181206)
2026-02-25 [email protected] Remove `ExtendSelectionByPageIntent` (flutter/flutter#182642)
2026-02-25 [email protected] feat: add few required properties to test widgets app (flutter/flutter#182805)
2026-02-25 [email protected] Updates MenuAnchor to respect software keyboard (flutter/flutter#180975)
2026-02-25 [email protected] Roll ImGui to v1.92.6-docking (flutter/flutter#182799)
2026-02-25 [email protected] Roll GoogleTest to e9907112b472 (flutter/flutter#182795)
2026-02-25 [email protected] Make positionInlineChildren assert much clearer (flutter/flutter#182093)
...
xxxOVALxxx pushed a commit to xxxOVALxxx/flutter that referenced this pull request Mar 10, 2026
## Description
This PR fixes an assertion crash in `RawAutocomplete` that occurs when
the widget is recreated and attempts to hide an overlay that was never
shown.

This is a regression introduced by
flutter/flutter@caa84ba which modified
the `_canShowOptionsView` getter (removing the `_selection == null`
check).

The fix ensures `hide()` is only called if the options view is actually
visible by using `else if (_optionsViewController.isShowing)`.

## Related Issues
Fixes flutter#182267

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

---------

Co-authored-by: Victor Sanni <[email protected]>
okorohelijah pushed a commit to okorohelijah/packages that referenced this pull request Mar 26, 2026
…r#11137)

Roll Flutter from b31548feb941 to 1141b2bdce66 (56 revisions)

flutter/flutter@b31548f...1141b2b

2026-02-27 [email protected] flutter#182361 Fix delegate copy on plugins init (flutter/flutter#182362)
2026-02-27 [email protected] Roll Dart SDK from 8b036b3e63cb to 1cdb7dfd913e (1 revision) (flutter/flutter#183004)
2026-02-27 [email protected] Manual roll Dart SDK to 3.12.0-192.0.dev (flutter/flutter#182883)
2026-02-27 [email protected] Roll Skia from e2062707b0c0 to ed220c490eea (1 revision) (flutter/flutter#182992)
2026-02-27 [email protected] Roll Skia from e5aa1ab5c59c to e2062707b0c0 (3 revisions) (flutter/flutter#182989)
2026-02-27 [email protected] Linux build hooks: Read compiler config from CMakeCache.txt (flutter/flutter#181004)
2026-02-27 [email protected] Roll ICU from a86a32e67b8d to 7971660ba630 (3 revisions) (flutter/flutter#182986)
2026-02-27 [email protected] Roll Skia from 49c2de95384e to e5aa1ab5c59c (2 revisions) (flutter/flutter#182980)
2026-02-27 [email protected] [Impeller] Remove shared rendering data from TextFrame (flutter/flutter#182886)
2026-02-27 [email protected] Add fl_view_new_sized_to_content() (flutter/flutter#182924)
2026-02-27 [email protected] [Shortcuts] Improve focus node debug labels (flutter/flutter#181834)
2026-02-27 [email protected] Add a cli flag for toggling HCPP use, and enable it (flutter/flutter#182516)
2026-02-27 [email protected] `SizedBox.square()` (flutter/flutter#182731)
2026-02-27 [email protected] [web] Fix stack corruption in Skwasm and harden withStackScope API (flutter/flutter#182912)
2026-02-26 [email protected] Roll zlib to 7eda07b1e067 (flutter/flutter#182692)
2026-02-26 [email protected] [ CI ] Don't crash analysis when ktlint isn't on PATH (flutter/flutter#181854)
2026-02-26 [email protected] Add calls to await `flutterDriver.waitUntilFirstFrameRasterized()` for all `android_engine_test` screenshot tests (flutter/flutter#182961)
2026-02-26 [email protected] Roll Skia from f44d7db68805 to 49c2de95384e (30 revisions) (flutter/flutter#182957)
2026-02-26 [email protected] Support sending window constraints in metrics events (flutter/flutter#182921)
2026-02-26 [email protected] Reland: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182891)
2026-02-26 [email protected] Remove some instances of useMaterial3: true (flutter/flutter#182944)
2026-02-26 [email protected] [Impeller] Use bilinear filtering for non-uniform scaled text (flutter/flutter#182224)
2026-02-26 [email protected] Add a ResidentCompilerFactory to create ResidentCompiler instances. (flutter/flutter#182930)
2026-02-26 [email protected] Add a getter in run.dart to access use-application-binary flag. (flutter/flutter#182931)
2026-02-26 [email protected] [web] Roll Firefox to 148 (flutter/flutter#182859)
2026-02-26 [email protected] Roll Packages from acd9adb to e1d0169 (8 revisions) (flutter/flutter#182946)
2026-02-26 [email protected] Roll Fuchsia Linux SDK from XI0Ax7fbtYE4XKYAQ... to G1GwOdVt5bM7GjMSY... (flutter/flutter#182942)
2026-02-26 [email protected] Add test for WindowPositioner.toString (flutter/flutter#182906)
2026-02-26 [email protected] Remove unused function prototype (flutter/flutter#182915)
2026-02-26 [email protected] Resolve inconsistency with SchedulerBinding.scheduleTask usage recomm… (flutter/flutter#182531)
2026-02-26 [email protected] Fix false positives for hit test misses in flutter_test (flutter/flutter#180856)
2026-02-26 [email protected] Replace an instance of flutter/engine with flutter/flutter (flutter/flutter#182655)
2026-02-26 [email protected] Use null-aware elements in widgets/routes.dart (flutter/flutter#181242)
2026-02-26 [email protected] Fix typos in method names across multiple files (flutter/flutter#182584)
2026-02-26 [email protected] Fix RawAutocomplete crash when options are hidden (flutter/flutter#182785)
2026-02-26 [email protected] Describe implications of tree-status and Google Testing for PRs (flutter/flutter#182916)
2026-02-26 [email protected] Make sure that a StretchingOverscrollIndicator doesn't crash when it … (flutter/flutter#182499)
2026-02-26 [email protected] framework: Use a super-parameter in several missed cases (flutter/flutter#182580)
2026-02-25 [email protected] `WidgetStatesConstraint` as a mixin (flutter/flutter#181704)
2026-02-25 [email protected] Paint the paragraph as a single image (flutter/flutter#181206)
2026-02-25 [email protected] Remove `ExtendSelectionByPageIntent` (flutter/flutter#182642)
2026-02-25 [email protected] feat: add few required properties to test widgets app (flutter/flutter#182805)
2026-02-25 [email protected] Updates MenuAnchor to respect software keyboard (flutter/flutter#180975)
2026-02-25 [email protected] Roll ImGui to v1.92.6-docking (flutter/flutter#182799)
2026-02-25 [email protected] Roll GoogleTest to e9907112b472 (flutter/flutter#182795)
2026-02-25 [email protected] Make positionInlineChildren assert much clearer (flutter/flutter#182093)
...
mboetger pushed a commit to mboetger/flutter that referenced this pull request Mar 26, 2026
## Description
This PR fixes an assertion crash in `RawAutocomplete` that occurs when
the widget is recreated and attempts to hide an overlay that was never
shown.

This is a regression introduced by
flutter/flutter@caa84ba which modified
the `_canShowOptionsView` getter (removing the `_selection == null`
check).

The fix ensures `hide()` is only called if the options view is actually
visible by using `else if (_optionsViewController.isShowing)`.

## Related Issues
Fixes flutter#182267

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

---------

Co-authored-by: Victor Sanni <[email protected]>
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…r#11137)

Roll Flutter from b31548feb941 to 1141b2bdce66 (56 revisions)

flutter/flutter@b31548f...1141b2b

2026-02-27 [email protected] flutter#182361 Fix delegate copy on plugins init (flutter/flutter#182362)
2026-02-27 [email protected] Roll Dart SDK from 8b036b3e63cb to 1cdb7dfd913e (1 revision) (flutter/flutter#183004)
2026-02-27 [email protected] Manual roll Dart SDK to 3.12.0-192.0.dev (flutter/flutter#182883)
2026-02-27 [email protected] Roll Skia from e2062707b0c0 to ed220c490eea (1 revision) (flutter/flutter#182992)
2026-02-27 [email protected] Roll Skia from e5aa1ab5c59c to e2062707b0c0 (3 revisions) (flutter/flutter#182989)
2026-02-27 [email protected] Linux build hooks: Read compiler config from CMakeCache.txt (flutter/flutter#181004)
2026-02-27 [email protected] Roll ICU from a86a32e67b8d to 7971660ba630 (3 revisions) (flutter/flutter#182986)
2026-02-27 [email protected] Roll Skia from 49c2de95384e to e5aa1ab5c59c (2 revisions) (flutter/flutter#182980)
2026-02-27 [email protected] [Impeller] Remove shared rendering data from TextFrame (flutter/flutter#182886)
2026-02-27 [email protected] Add fl_view_new_sized_to_content() (flutter/flutter#182924)
2026-02-27 [email protected] [Shortcuts] Improve focus node debug labels (flutter/flutter#181834)
2026-02-27 [email protected] Add a cli flag for toggling HCPP use, and enable it (flutter/flutter#182516)
2026-02-27 [email protected] `SizedBox.square()` (flutter/flutter#182731)
2026-02-27 [email protected] [web] Fix stack corruption in Skwasm and harden withStackScope API (flutter/flutter#182912)
2026-02-26 [email protected] Roll zlib to 7eda07b1e067 (flutter/flutter#182692)
2026-02-26 [email protected] [ CI ] Don't crash analysis when ktlint isn't on PATH (flutter/flutter#181854)
2026-02-26 [email protected] Add calls to await `flutterDriver.waitUntilFirstFrameRasterized()` for all `android_engine_test` screenshot tests (flutter/flutter#182961)
2026-02-26 [email protected] Roll Skia from f44d7db68805 to 49c2de95384e (30 revisions) (flutter/flutter#182957)
2026-02-26 [email protected] Support sending window constraints in metrics events (flutter/flutter#182921)
2026-02-26 [email protected] Reland: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182891)
2026-02-26 [email protected] Remove some instances of useMaterial3: true (flutter/flutter#182944)
2026-02-26 [email protected] [Impeller] Use bilinear filtering for non-uniform scaled text (flutter/flutter#182224)
2026-02-26 [email protected] Add a ResidentCompilerFactory to create ResidentCompiler instances. (flutter/flutter#182930)
2026-02-26 [email protected] Add a getter in run.dart to access use-application-binary flag. (flutter/flutter#182931)
2026-02-26 [email protected] [web] Roll Firefox to 148 (flutter/flutter#182859)
2026-02-26 [email protected] Roll Packages from acd9adb to e1d0169 (8 revisions) (flutter/flutter#182946)
2026-02-26 [email protected] Roll Fuchsia Linux SDK from XI0Ax7fbtYE4XKYAQ... to G1GwOdVt5bM7GjMSY... (flutter/flutter#182942)
2026-02-26 [email protected] Add test for WindowPositioner.toString (flutter/flutter#182906)
2026-02-26 [email protected] Remove unused function prototype (flutter/flutter#182915)
2026-02-26 [email protected] Resolve inconsistency with SchedulerBinding.scheduleTask usage recomm… (flutter/flutter#182531)
2026-02-26 [email protected] Fix false positives for hit test misses in flutter_test (flutter/flutter#180856)
2026-02-26 [email protected] Replace an instance of flutter/engine with flutter/flutter (flutter/flutter#182655)
2026-02-26 [email protected] Use null-aware elements in widgets/routes.dart (flutter/flutter#181242)
2026-02-26 [email protected] Fix typos in method names across multiple files (flutter/flutter#182584)
2026-02-26 [email protected] Fix RawAutocomplete crash when options are hidden (flutter/flutter#182785)
2026-02-26 [email protected] Describe implications of tree-status and Google Testing for PRs (flutter/flutter#182916)
2026-02-26 [email protected] Make sure that a StretchingOverscrollIndicator doesn't crash when it … (flutter/flutter#182499)
2026-02-26 [email protected] framework: Use a super-parameter in several missed cases (flutter/flutter#182580)
2026-02-25 [email protected] `WidgetStatesConstraint` as a mixin (flutter/flutter#181704)
2026-02-25 [email protected] Paint the paragraph as a single image (flutter/flutter#181206)
2026-02-25 [email protected] Remove `ExtendSelectionByPageIntent` (flutter/flutter#182642)
2026-02-25 [email protected] feat: add few required properties to test widgets app (flutter/flutter#182805)
2026-02-25 [email protected] Updates MenuAnchor to respect software keyboard (flutter/flutter#180975)
2026-02-25 [email protected] Roll ImGui to v1.92.6-docking (flutter/flutter#182799)
2026-02-25 [email protected] Roll GoogleTest to e9907112b472 (flutter/flutter#182795)
2026-02-25 [email protected] Make positionInlineChildren assert much clearer (flutter/flutter#182093)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RawAutocomplete._updateOptionsViewVisibility() x _zOrderIndex != null

2 participants