Repository navigation
Handle unexpected exceptions during Azure metadata detection - #189457
auto-submit[bot] merged 7 commits into
Conversation
There was a problem hiding this comment.
Code Review
This pull request adds a generic catch block to the Azure metadata detector to prevent unexpected exceptions from blocking Flutter startup, along with a corresponding unit test. Feedback on the changes includes correcting a typo ('FLutter' to 'Flutter') in a code comment and fixing the indentation and formatting of the new test to comply with the dart format style guide.
bkonyi
left a comment
There was a problem hiding this comment.
Thanks for the contribution!
One minor comment, but this basically LGTM!
| } on OSError { | ||
| // The HttpClient might be running in a WSL1 environment. | ||
| return _isRunningOnAzure = false; | ||
| } catch (_) { |
There was a problem hiding this comment.
This should be on Object { instead.
There was a problem hiding this comment.
Done. Updated to on Object {. Thanks!
| } on OSError { | ||
| // The HttpClient might be running in a WSL1 environment. | ||
| return _isRunningOnAzure = false; | ||
| } on Object { |
There was a problem hiding this comment.
There's an extra space after Object that the formatter won't be happy about :)
There was a problem hiding this comment.
My bad :D
Done!
|
autosubmit label was removed for flutter/flutter/189457, because This PR has not met approval requirements for merging. The PR author is not a member of flutter-hackers and needs 1 more review(s) in order to merge this PR.
|
|
autosubmit label was removed for flutter/flutter/189457, because - The status or check suite check-engine-changes has failed. Please fix the issues identified (or deflake) before re-applying this label. |
| } on OSError { | ||
| // The HttpClient might be running in a WSL1 environment. | ||
| return _isRunningOnAzure = false; | ||
| } on Object { |
There was a problem hiding this comment.
on Object is very unidiomatic. Since this is supposed to be a catch-all for all exception types, why don't we remove all the other cases, and keeping only on HttpException?
try {
...
} on HttpException {
//....
return _isRunningOnAzure = true;
} catch (e) {
// ...
return _isRunningOnAzure = false;
}There was a problem hiding this comment.
This approach makes much more sense, I will change my pull request accordingly. Thanks for the suggestion.
|
Oops, looks like my suggestion actually broke the linter, it is actually recommended to write But the other part of my suggestion still holds, that we should remove the other exception types now that we have a catch all. So this should be: try {
...
} on HttpException {
//....
return _isRunningOnAzure = true;
} on Object {
// ...
return _isRunningOnAzure = false;
} |
Yeah, I forgot to analyze it before i commit. Indeed, this new structure still remains though. Done. |
|
autosubmit label was removed for flutter/flutter/189457, because The base commit of the PR is older than 7 days and can not be merged. Please merge the latest changes from the main into this branch and resubmit the PR. |
08ab19e to
f26066c
Compare
|
autosubmit label was removed for flutter/flutter/189457, because - The status or check suite Google testing has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
The tests are failing because of an infra issue. I'll submit the PR once the infra issue is resolved. |
…st.dart Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
5d05938 to
3727595
Compare
…12420) Manual roll requested by [email protected] flutter/flutter@b766512...27b0988 2026-08-05 [email protected] reland(tool): remove redundant --enable-experiment=record-use flag (flutter/flutter#190591) 2026-08-05 [email protected] Windows: Propagate enabled accessibility state (flutter/flutter#190507) 2026-08-05 [email protected] Roll Fuchsia Test Scripts from ltbuIH9Z3T_yOuigu... to vcANVO8VIDQHasH1X... (flutter/flutter#190589) 2026-08-05 [email protected] Document frozen embedder API structs (flutter/flutter#186842) 2026-08-05 [email protected] Document super call order for State.didChangeDependencies (flutter/flutter#185945) 2026-08-05 [email protected] Move examples of `flutter/widgets` widgets out from `flutter/material` (flutter/flutter#189532) 2026-08-05 [email protected] [web] Use thread local strike caches in skwasm (flutter/flutter#190048) 2026-08-05 [email protected] doc: fix typo in see also section for PrimaryScrollController.maybeOf (flutter/flutter#190386) 2026-08-05 [email protected] Migrate the shell unit tests from legacy Dart native functions to FFI (flutter/flutter#190473) 2026-08-05 [email protected] render proxy box now defaults baseline calculation to null (flutter/flutter#190269) 2026-08-05 [email protected] Update Widgets Localizations from Translation Console (flutter/flutter#190503) 2026-08-04 [email protected] Revert: fix(tool): remove redundant --enable-experiment=record-use flag (flutter/flutter#190583) 2026-08-04 [email protected] Roll Fuchsia Test Scripts from 1frGe_KltAJKkeyPg... to ltbuIH9Z3T_yOuigu... (flutter/flutter#190561) 2026-08-04 [email protected] iOS,macOS: add tsan and ubsan support for Swift (flutter/flutter#190497) 2026-08-04 [email protected] fix: update on_message_ to nullptr after window destroy so that dart gets destroy message (flutter/flutter#185807) 2026-08-04 [email protected] [flutter_tools] Gracefully handle locked Windows files during clean (flutter/flutter#190095) 2026-08-04 [email protected] iOS,macOS: make Logger thread-safe, conform to Sendable (flutter/flutter#190488) 2026-08-04 [email protected] iOS: Eliminate use of IOSContextNoop in platform view tests (reland) (flutter/flutter#190509) 2026-08-04 [email protected] fix(tool): remove redundant --enable-experiment=record-use flag (flutter/flutter#190475) 2026-08-04 [email protected] android_hardware_smoke_test: Detect blank image failures or EGL initialization warnings and retry (flutter/flutter#190110) 2026-08-04 [email protected] Bumps text gamma on windows to match skia. (flutter/flutter#190477) 2026-08-04 [email protected] Roll Skia from 48b58ee222f1 to a8583a0a2c11 (2 revisions) (flutter/flutter#190537) 2026-08-04 [email protected] [tool][web] Intercept dart2wasm errors & append JS migration footers (flutter/flutter#190476) 2026-08-04 [email protected] [record_use] Migrate IconTreeShaker to `package:record_use` (flutter/flutter#190225) 2026-08-04 [email protected] Handle unexpected exceptions during Azure metadata detection (flutter/flutter#189457) 2026-08-04 [email protected] Fix merge conflict from flutter/flutter#190369 (flutter/flutter#190544) 2026-08-04 [email protected] Prepare device support symbols (flutter/flutter#190369) 2026-08-04 [email protected] Roll Packages from ac87e65 to 3498b9d (1 revision) (flutter/flutter#190532) 2026-08-04 [email protected] Roll Skia from a08d918ebd6a to 48b58ee222f1 (11 revisions) (flutter/flutter#190527) 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 [email protected],[email protected] 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
Description
Azure metadata detection is a best-effort environment check and should never prevent the Flutter CLI from starting.
In some network environments (for example, transparent proxies or enterprise firewalls), requests to the Azure metadata endpoint (
http://169.254.169.254/metadata/instance) may result in unexpected exceptions instead of the currently expected network-related exceptions. These exceptions currently propagate and terminate the Flutter CLI.This change catches unexpected exceptions during Azure metadata detection and treats them as "not running on Azure", which is consistent with the behavior for other metadata lookup failures.
A regression test has been added to verify this behavior.
Issues
#189456
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.