Skip to content

[flutter_tools] Fix flutter create crash with SDK packages in bin/cache/pkg#187653

Merged
auto-submit[bot] merged 1 commit into
flutter:masterfrom
bdero:bdero/flutter-gpu-create-fix
Jun 8, 2026
Merged

[flutter_tools] Fix flutter create crash with SDK packages in bin/cache/pkg#187653
auto-submit[bot] merged 1 commit into
flutter:masterfrom
bdero:bdero/flutter-gpu-create-fix

Conversation

@bdero

@bdero bdero commented Jun 7, 2026

Copy link
Copy Markdown
Member

Fixes #187652

flutter create crashes with a PathNotFoundException when the project depended on an SDK package vendored in bin/cache/pkg (such as flutter_gpu), because gatherSdkPackageDependencies only looked for SDK package pubspecs under <flutter_root>/packages. It now resolves the directory the same way pub's FlutterSdk.packagePath does, searching both packages/ and bin/cache/pkg/, and skips a package instead of crashing when its pubspec is missing.

Pre-launch Checklist

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 7, 2026
@github-actions github-actions Bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Jun 7, 2026
@bdero bdero changed the title [tool] Fix flutter create crash with SDK packages in bin/cache/pkg [flutter_tools] Fix flutter create crash with SDK packages in bin/cache/pkg Jun 7, 2026
@bdero bdero force-pushed the bdero/flutter-gpu-create-fix branch from f69cac5 to 0b6e97f Compare June 7, 2026 01:23
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 7, 2026
@bdero bdero force-pushed the bdero/flutter-gpu-create-fix branch from 0b6e97f to 629eeb3 Compare June 7, 2026 01:38
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 7, 2026
@bdero bdero force-pushed the bdero/flutter-gpu-create-fix branch from 629eeb3 to 134415f Compare June 7, 2026 01:52
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 7, 2026
@bdero bdero force-pushed the bdero/flutter-gpu-create-fix branch from 134415f to 9d58908 Compare June 7, 2026 02:28
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 7, 2026
@bdero bdero marked this pull request as ready for review June 7, 2026 02:43

@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 updates gatherSdkPackageDependencies to resolve SDK packages from both <flutter_root>/packages and <flutter_root>/bin/cache/pkg using a new helper function _resolveSdkPackageDir. It also skips packages that cannot be found to prevent crashes, and adds corresponding unit tests. Feedback suggests improving _resolveSdkPackageDir by verifying the existence of the pubspec.yaml file itself within the candidate directory, rather than just checking if the directory exists, to avoid potential FileSystemException crashes.

Comment thread packages/flutter_tools/lib/src/commands/create.dart
…ache/pkg

When generating the project pubspec.lock, `gatherSdkPackageDependencies`
read each `sdk: flutter` dependency's pubspec from `<flutter_root>/packages`
only. SDK packages vendored into the cache (`flutter_gpu`, `sky_engine`)
live in `<flutter_root>/bin/cache/pkg` instead, so the read threw a
PathNotFoundException and aborted `flutter create` after the platform
files were already generated.

Resolve the package directory the same way pub's `FlutterSdk.packagePath`
does (check `packages/`, then `bin/cache/pkg/`), and skip any SDK package
whose pubspec cannot be found instead of crashing.

Fixes flutter#187652
@bdero bdero force-pushed the bdero/flutter-gpu-create-fix branch from 9d58908 to d635bc6 Compare June 7, 2026 03:14
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 7, 2026
@bdero bdero requested review from jtmcdole and sigurdm June 7, 2026 03:59
@bdero bdero added the CICD Run CI/CD label Jun 7, 2026

@sigurdm sigurdm 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.

LGTM

@jtmcdole jtmcdole added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 8, 2026
@auto-submit auto-submit Bot added this pull request to the merge queue Jun 8, 2026
Merged via the queue into flutter:master with commit 945a9db Jun 8, 2026
166 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jun 8, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Jun 10, 2026
flutter/flutter@1bdf4af...66aaa9a

2026-06-08 katelovett@google.com Add docs on bumping Dart (flutter/flutter#187540)
2026-06-08 rmacnak@google.com Rename Dart_LoadELF2 back to Dart_LoadELF. (flutter/flutter#187677)
2026-06-08 1063596+reidbaker@users.noreply.github.com Add bare, reidbaker, and android agents (flutter/flutter#187588)
2026-06-08 engine-flutter-autoroll@skia.org Roll Dart SDK from 73ec2745c49a to 39f1c44e294f (3 revisions) (flutter/flutter#187684)
2026-06-08 bdero@google.com [Flutter GPU] Document the formats.dart enums (flutter/flutter#187628)
2026-06-08 engine-flutter-autoroll@skia.org Roll Skia from 0ea3dae686e3 to 43f135735152 (3 revisions) (flutter/flutter#187683)
2026-06-08 bdero@google.com [flutter_tools] Fix `flutter create` crash with SDK packages in bin/cache/pkg (flutter/flutter#187653)
2026-06-08 engine-flutter-autoroll@skia.org Roll Packages from 61bdbb4 to 13b49f4 (1 revision) (flutter/flutter#187678)
2026-06-08 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from fAGotRbStYGA0idum... to KNe93cf5wU4xG2d-m... (flutter/flutter#187675)
2026-06-08 engine-flutter-autoroll@skia.org Roll Skia from d17c51db4ede to 0ea3dae686e3 (1 revision) (flutter/flutter#187674)
2026-06-08 engine-flutter-autoroll@skia.org Roll Skia from 9659a87f500f to d17c51db4ede (2 revisions) (flutter/flutter#187672)
2026-06-08 engine-flutter-autoroll@skia.org Roll Skia from a56d5a4e1120 to 9659a87f500f (1 revision) (flutter/flutter#187667)
2026-06-07 engine-flutter-autoroll@skia.org Roll Skia from 101faf7d9d1f to a56d5a4e1120 (1 revision) (flutter/flutter#187665)
2026-06-07 burak.karahan@mail.ru Remove Material import from navigator replacement tests (flutter/flutter#186674)
2026-06-07 burak.karahan@mail.ru Remove Material import from editable text cursor tests (flutter/flutter#186671)
2026-06-07 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from eIU3QDrxaBPAMY9oi... to fAGotRbStYGA0idum... (flutter/flutter#187656)
2026-06-07 engine-flutter-autoroll@skia.org Roll Skia from 294ac0cb2a7d to 101faf7d9d1f (1 revision) (flutter/flutter#187655)
2026-06-06 engine-flutter-autoroll@skia.org Roll Skia from 91ee612cf552 to 294ac0cb2a7d (2 revisions) (flutter/flutter#187651)
2026-06-06 engine-flutter-autoroll@skia.org Roll Skia from a47a9a2c8ae5 to 91ee612cf552 (4 revisions) (flutter/flutter#187642)
2026-06-06 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from N_LiSaBSUsE2LDZgG... to eIU3QDrxaBPAMY9oi... (flutter/flutter#187641)
2026-06-06 engine-flutter-autoroll@skia.org Roll Dart SDK from 05243f181c21 to 73ec2745c49a (2 revisions) (flutter/flutter#187640)
2026-06-06 engine-flutter-autoroll@skia.org Roll Fuchsia GN SDK from oOAcFhkoE2_-Sy67z... to a87CbQSWEjkPUK1ZY... (flutter/flutter#187632)
2026-06-06 engine-flutter-autoroll@skia.org Roll Dart SDK from 6a9a0efe66eb to 05243f181c21 (1 revision) (flutter/flutter#187634)
2026-06-05 bdero@google.com [Flutter GPU] Add instanced draw support (flutter/flutter#187359)
2026-06-05 30870216+gaaclarke@users.noreply.github.com clears out the android context after the frame on mediatek devices (flutter/flutter#187404)
2026-06-05 kevmoo@users.noreply.github.com fix(tool): initialize asset isModified state on startup to prevent 2x hot restart slowdown (flutter/flutter#187488)
2026-06-05 magder@google.com Remove reference to 'good first issue' in the docs (flutter/flutter#187615)
2026-06-05 stuartmorgan@google.com Remove references to 'good first issue' (flutter/flutter#187617)
2026-06-05 154381524+flutteractionsbot@users.noreply.github.com Revert "Add support for stylus buttons" (flutter/flutter#187581)
2026-06-05 6655696+guidezpl@users.noreply.github.com Always run coverage upload step, even if a single test fails (flutter/flutter#187614)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…r#11876)

flutter/flutter@1bdf4af...66aaa9a

2026-06-08 katelovett@google.com Add docs on bumping Dart (flutter/flutter#187540)
2026-06-08 rmacnak@google.com Rename Dart_LoadELF2 back to Dart_LoadELF. (flutter/flutter#187677)
2026-06-08 1063596+reidbaker@users.noreply.github.com Add bare, reidbaker, and android agents (flutter/flutter#187588)
2026-06-08 engine-flutter-autoroll@skia.org Roll Dart SDK from 73ec2745c49a to 39f1c44e294f (3 revisions) (flutter/flutter#187684)
2026-06-08 bdero@google.com [Flutter GPU] Document the formats.dart enums (flutter/flutter#187628)
2026-06-08 engine-flutter-autoroll@skia.org Roll Skia from 0ea3dae686e3 to 43f135735152 (3 revisions) (flutter/flutter#187683)
2026-06-08 bdero@google.com [flutter_tools] Fix `flutter create` crash with SDK packages in bin/cache/pkg (flutter/flutter#187653)
2026-06-08 engine-flutter-autoroll@skia.org Roll Packages from 61bdbb4 to 13b49f4 (1 revision) (flutter/flutter#187678)
2026-06-08 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from fAGotRbStYGA0idum... to KNe93cf5wU4xG2d-m... (flutter/flutter#187675)
2026-06-08 engine-flutter-autoroll@skia.org Roll Skia from d17c51db4ede to 0ea3dae686e3 (1 revision) (flutter/flutter#187674)
2026-06-08 engine-flutter-autoroll@skia.org Roll Skia from 9659a87f500f to d17c51db4ede (2 revisions) (flutter/flutter#187672)
2026-06-08 engine-flutter-autoroll@skia.org Roll Skia from a56d5a4e1120 to 9659a87f500f (1 revision) (flutter/flutter#187667)
2026-06-07 engine-flutter-autoroll@skia.org Roll Skia from 101faf7d9d1f to a56d5a4e1120 (1 revision) (flutter/flutter#187665)
2026-06-07 burak.karahan@mail.ru Remove Material import from navigator replacement tests (flutter/flutter#186674)
2026-06-07 burak.karahan@mail.ru Remove Material import from editable text cursor tests (flutter/flutter#186671)
2026-06-07 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from eIU3QDrxaBPAMY9oi... to fAGotRbStYGA0idum... (flutter/flutter#187656)
2026-06-07 engine-flutter-autoroll@skia.org Roll Skia from 294ac0cb2a7d to 101faf7d9d1f (1 revision) (flutter/flutter#187655)
2026-06-06 engine-flutter-autoroll@skia.org Roll Skia from 91ee612cf552 to 294ac0cb2a7d (2 revisions) (flutter/flutter#187651)
2026-06-06 engine-flutter-autoroll@skia.org Roll Skia from a47a9a2c8ae5 to 91ee612cf552 (4 revisions) (flutter/flutter#187642)
2026-06-06 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from N_LiSaBSUsE2LDZgG... to eIU3QDrxaBPAMY9oi... (flutter/flutter#187641)
2026-06-06 engine-flutter-autoroll@skia.org Roll Dart SDK from 05243f181c21 to 73ec2745c49a (2 revisions) (flutter/flutter#187640)
2026-06-06 engine-flutter-autoroll@skia.org Roll Fuchsia GN SDK from oOAcFhkoE2_-Sy67z... to a87CbQSWEjkPUK1ZY... (flutter/flutter#187632)
2026-06-06 engine-flutter-autoroll@skia.org Roll Dart SDK from 6a9a0efe66eb to 05243f181c21 (1 revision) (flutter/flutter#187634)
2026-06-05 bdero@google.com [Flutter GPU] Add instanced draw support (flutter/flutter#187359)
2026-06-05 30870216+gaaclarke@users.noreply.github.com clears out the android context after the frame on mediatek devices (flutter/flutter#187404)
2026-06-05 kevmoo@users.noreply.github.com fix(tool): initialize asset isModified state on startup to prevent 2x hot restart slowdown (flutter/flutter#187488)
2026-06-05 magder@google.com Remove reference to 'good first issue' in the docs (flutter/flutter#187615)
2026-06-05 stuartmorgan@google.com Remove references to 'good first issue' (flutter/flutter#187617)
2026-06-05 154381524+flutteractionsbot@users.noreply.github.com Revert "Add support for stylus buttons" (flutter/flutter#187581)
2026-06-05 6655696+guidezpl@users.noreply.github.com Always run coverage upload step, even if a single test fails (flutter/flutter#187614)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
via-guy pushed a commit to via-guy/flutter that referenced this pull request Jun 26, 2026
…ache/pkg (flutter#187653)

Fixes flutter#187652

`flutter create` crashes with a `PathNotFoundException` when the project
depended on an SDK package vendored in `bin/cache/pkg` (such as
`flutter_gpu`), because `gatherSdkPackageDependencies` only looked for
SDK package pubspecs under `<flutter_root>/packages`. It now resolves
the directory the same way pub's `FlutterSdk.packagePath` does,
searching both `packages/` and `bin/cache/pkg/`, and skips a package
instead of crashing when its pubspec is missing.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [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.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[AI contribution guidelines]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[flutter_tools] flutter create crashes with PathNotFoundException when the project depends on the SDK package flutter_gpu

3 participants