Repository navigation
Description
Steps to reproduce
-
Install Flutter on Windows using Scoop.
-
Scoop installs the versioned Flutter SDK and creates a
currentjunction pointing to the currently active version:
D:\Program Files\Scoop\apps\flutter\current
-> D:\Program Files\Scoop\apps\flutter\3.47.2
- Add the Scoop
currentFlutter directory toPATH:
D:\Program Files\Scoop\apps\flutter\current\bin
- Verify the Flutter executable resolved by Windows:
where.exe flutterOutput:
D:\Program Files\Scoop\apps\flutter\current\bin\flutter
D:\Program Files\Scoop\apps\flutter\current\bin\flutter.bat
Verify Dart as well:
where.exe dartOutput:
D:\Program Files\Scoop\apps\flutter\current\bin\dart
D:\Program Files\Scoop\apps\flutter\current\bin\dart.bat
- Verify that Scoop's
currentdirectory is a Windows Junction:
Get-Item "D:\Program Files\Scoop\apps\flutter\current" | Format-List *Relevant output:
PSIsContainer : True
Mode : d-r--l
Target : {D:\Program Files\Scoop\apps\flutter\3.47.2}
LinkType : Junction
FullName : D:\Program Files\Scoop\apps\flutter\current
Attributes : ReadOnly, Directory, ReparsePoint
- Run:
flutter doctor -vflutter doctor reports that the Flutter and Dart executables are outside the current Flutter SDK checkout even though PATH already points to the Scoop current\bin directory.
This appears related to previous Windows symlink/junction reports such as #124926 and #155474, but it is still reproducible on Flutter 3.47.2 stable with Scoop.
Expected results
flutter doctor should recognize that:
D:\Program Files\Scoop\apps\flutter\current
and:
D:\Program Files\Scoop\apps\flutter\3.47.2
refer to the same Flutter SDK because current is a Windows Junction whose target is the versioned Flutter directory.
No Flutter or Dart PATH warning should be reported.
In particular, Flutter should not suggest adding:
D:\Program Files\Scoop\apps\flutter\current\bin
to the front of PATH, because that directory is already being used.
Actual results
flutter doctor -v reports:
! Warning: `flutter` on your path resolves to D:\Program Files\Scoop\apps\flutter\3.47.2\bin\flutter, which is not inside your current Flutter SDK checkout
at D:\Program Files\Scoop\apps\flutter\current. Consider adding D:\Program Files\Scoop\apps\flutter\current\bin to the front of your path.
! Warning: `dart` on your path resolves to D:\Program Files\Scoop\apps\flutter\3.47.2\bin\dart, which is not inside your current Flutter SDK checkout at
D:\Program Files\Scoop\apps\flutter\current. Consider adding D:\Program Files\Scoop\apps\flutter\current\bin to the front of your path.
However, Windows resolves flutter from:
D:\Program Files\Scoop\apps\flutter\current\bin\flutter
as shown by where.exe flutter.
It appears that Flutter resolves the executable path through the Windows Junction to its physical target:
D:\Program Files\Scoop\apps\flutter\3.47.2
while keeping the Flutter SDK checkout path as:
D:\Program Files\Scoop\apps\flutter\current
The two paths refer to the same directory but are treated as different Flutter SDK locations.
This also makes the suggested remediation misleading because current\bin is already the active PATH entry.
Code sample
Code sample
Not applicable. This issue affects the Flutter CLI / flutter doctor path validation and does not require a Flutter application.Screenshots or Video
Screenshots / Video demonstration
Not applicable.
Logs
Logs
> where.exe flutter
D:\Program Files\Scoop\apps\flutter\current\bin\flutter
D:\Program Files\Scoop\apps\flutter\current\bin\flutter.bat
> where.exe dart
D:\Program Files\Scoop\apps\flutter\current\bin\dart
D:\Program Files\Scoop\apps\flutter\current\bin\dart.bat
Scoop junction:
PSIsContainer : True
Mode : d-r--l
Target : {D:\Program Files\Scoop\apps\flutter\3.47.2}
LinkType : Junction
FullName : D:\Program Files\Scoop\apps\flutter\current
Attributes : ReadOnly, Directory, ReparsePointFlutter Doctor output
Doctor output
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
[!] Flutter (Channel stable, 3.47.2, on Microsoft Windows [版本 10.0.26200.9168], locale zh-CN) [201ms]
• Flutter version 3.47.2 on channel stable at D:\Program Files\Scoop\apps\flutter\current
! Warning: `flutter` on your path resolves to D:\Program Files\Scoop\apps\flutter\3.47.2\bin\flutter, which is not inside your current Flutter SDK checkout
at D:\Program Files\Scoop\apps\flutter\current. Consider adding D:\Program Files\Scoop\apps\flutter\current\bin to the front of your path.
! Warning: `dart` on your path resolves to D:\Program Files\Scoop\apps\flutter\3.47.2\bin\dart, which is not inside your current Flutter SDK checkout at
D:\Program Files\Scoop\apps\flutter\current. Consider adding D:\Program Files\Scoop\apps\flutter\current\bin to the front of your path.
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision d3b14c8769 (30 hours ago), 2026-08-26 16:07:51 -0700
• Engine revision a804b26164
• Dart version 3.13.2
• DevTools version 2.60.0
• Pub download mirror https://pub.flutter-io.cn
• Flutter download mirror https://storage.flutter-io.cn
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations,
enable-native-assets, enable-record-use, enable-swift-package-manager, omit-legacy-version-file, enable-lldb-debugging, enable-uiscene-migration
• If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.
[✓] Windows Version (Windows 11 or higher, 25H2, 2009) [1,778ms]
[✓] Android toolchain - develop for Android devices (Android SDK version 37.0.0) [1,540ms]
• Android SDK at D:\System\AppData\Local\Android\Sdk
• Emulator version 37.1.11.0 (build_id 15917651) (CL:N/A)
• Platform android-37.0, build-tools 37.0.0
• ANDROID_HOME = D:\System\AppData\Local\Android\Sdk
• Java binary at: D:\Program Files\Jetbrains\Android Studio\jbr\bin\java
• Java version OpenJDK Runtime Environment (build 25.0.2+-15348964-b329.117)
• All Android licenses accepted.
[✓] Chrome - develop for the web [14ms]
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[✗] Visual Studio - develop Windows apps [13ms]
✗ Visual Studio not installed; this is necessary to develop Windows apps.
[✓] Proxy Configuration [49ms]
• HTTP_PROXY is set
• NO_PROXY is localhost,127.0.0.1,::1
• NO_PROXY contains localhost
• NO_PROXY contains ::1
• NO_PROXY contains 127.0.0.1
[✓] Connected device (3 available) [145ms]
• Windows (desktop) • windows • windows-x64 • Microsoft Windows [版本 10.0.26200.9168]
• Chrome (web) • chrome • web-javascript • Google Chrome 152.0.7977.65
• Edge (web) • edge • web-javascript • Microsoft Edge 151.0.4129.107
[✓] Network resources [694ms]
• All expected network resources are available.
! Doctor found issues in 2 categories.
Activity
puneetkukreja98 commentedon Aug 28, 2026
@SSJ-ZYJ Check this #115651 (comment) if it helps your case.
Simliar issues:
#186763
#119995
#115651
SSJ-ZYJ commentedon Aug 28, 2026
@puneetkukreja98 Thanks for the references. I checked the linked issues.
#115651 appears to be related to Windows path normalization/case sensitivity, which was addressed by #115889.
#119995 is especially similar to my case: Flutter was also installed via Scoop, with the SDK reported under
apps\flutter\currentwhileflutter doctorresolved the executable through the version-specific directory.#186763 also contains the same Scoop-related
flutter doctorwarning on Flutter 3.41.9.In my case, the warning is still reproducible on Flutter 3.47.2 stable.
The important detail is that
where.exe flutterandwhere.exe dartboth return paths under:while
flutter doctorresolves them through the Junction target:currentis a Windows Junction pointing to3.47.2, so both paths refer to the same SDK.Therefore, this looks very similar to #119995, but the underlying Scoop Junction path comparison issue still appears to be present in the current stable release.
SSJ-ZYJ commentedon Aug 28, 2026
Update: I’ve implemented a fix and opened a pull request:
#191975
The fix resolves Scoop’s Flutter SDK Junction for the internal path comparison while preserving the logical
currentpath influtter doctoroutput. It also falls back to the existing behavior if the SDK root cannot be resolved.The PR adds regression tests for Flutter, Dart, Windows directory links, unrelated SDK paths, and unresolved SDK roots.
Validation completed:
flutter analyzepassedpuneetkukreja98 commentedon Aug 31, 2026
Routing this to team-windows for futher investigation.
mattkae commentedon Sep 9, 2026
This is best put on the tool team, correct, since it's a Flutter doctor issue? I figured someone outside of windows would have a better insight into that review than myself.
flutter-triage-bot commentedon Sep 12, 2026
Issue is assigned to multiple teams (tool, windows). Please ensure the issue has only one
team-*label at a time. Usefyi-*labels to have another team look at the issue without reassigning it.[flutter_tools] Fix flutter doctor path validation for symlinked SDKs (…
github-actions commentedon Oct 6, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.