-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Summary
PR #34498 ("Add Microsoft.Maui.Client tool") has two distinct CI failures: (1) the macOS Release build crashes with 51 compiler errors in Maui.Controls.Sample targeting net10.0-ios, and (2) the new Microsoft.Maui.Client.UnitTests work item fails with 2 test assertion mismatches on both Windows Debug and Release Helix queues.
Build Details
| Field | Value |
|---|---|
| Pipeline | maui-pr (Definition 302) |
| Build | #1353764 |
| Branch | refs/pull/34498/merge |
| PR | #34498 — Add Microsoft.Maui.Client tool for cross-platform device and SDK management |
| Author | @rmarinho |
| Commit | 3172ea61cdae |
| Duration | 2026-03-26T13:55 → 15:54 (≈2h) |
Failed Jobs
| # | Job | Error Summary | Helix? |
|---|---|---|---|
| 1 | Build macOS (Release) |
51 CS compiler errors in Maui.Controls.Sample for net10.0-ios TFM |
No |
| 2 | Windows Helix Unit Tests (Debug) |
Microsoft.Maui.Client.UnitTests.dll — 2 tests failed |
Yes |
| 3 | Windows Helix Unit Tests (Release) |
Microsoft.Maui.Client.UnitTests.dll — 2 tests failed |
Yes |
Failure 1: Build macOS (Release) — 51 Compiler Errors
File: src/Controls/samples/Controls.Sample/Maui.Controls.Sample.csproj (TFM: net10.0-ios)
Three classes of errors were emitted:
A) Android platform files compiled for iOS TFM (CS0246):
Platforms/Android/MainActivity.cs(1,7): error CS0246: The type or namespace name 'Android' could not be found [TargetFramework=net10.0-ios]
Platforms/Android/MainApplication.cs(2,7): error CS0246: The type or namespace name 'Android' could not be found [TargetFramework=net10.0-ios]
```
**B) MacCatalyst platform files duplicated for iOS TFM (CS0101):**
```
Platforms/MacCatalyst/AppDelegate.cs(14,15): error CS0101: The namespace 'Maui.Controls.Sample.Platform' already contains a definition for 'AppDelegate' [TargetFramework=net10.0-ios]
Platforms/MacCatalyst/Main.cs(6,15): error CS0101: The namespace 'Maui.Controls.Sample.Platform' already contains a definition for 'Application' [TargetFramework=net10.0-ios]
Platforms/MacCatalyst/SceneDelegate.cs(9,15): error CS0101: The namespace 'Maui.Controls.Sample.Platform' already contains a definition for 'SceneDelegate' [TargetFramework=net10.0-ios]
```
**C) Page lifecycle methods not found to override (CS0115) — 12 files affected:**
```
Pages/Core/DragAndDropBetweenLayouts.xaml.cs(31,27): error CS0115: 'OnAppearing()': no suitable method found to override
Pages/Core/FlyoutPageGallery.xaml.cs(26,27): error CS0115: 'OnNavigatedTo(NavigatedToEventArgs)': no suitable method found to override
Pages/Core/FlyoutPageGallery.xaml.cs(41,27): error CS0115: 'OnNavigatedFrom(NavigatedFromEventArgs)': no suitable method found to override
Pages/Core/ModalPage.xaml.cs(19,27): error CS0115: 'OnNavigatingFrom(NavigatingFromEventArgs)': no suitable method found to override
Pages/Core/ModalPage.xaml.cs(25,27): error CS0115: 'OnNavigatedTo(NavigatedToEventArgs)': no suitable method found to override
Pages/Core/ModalPage.xaml.cs(41,27): error CS0115: 'OnAppearing()': no suitable method found to override
... (+ 6 more in ScrollViewOrientationPage, DatePickerPage, PickerPage, WebViewGallery, etc.)
```
**Possible root cause for error class C:** The PR updated `eng/Version.Details.xml` and `eng/Versions.props`. A dependency version bump may have brought in a build of MAUI where these lifecycle virtual methods were removed or renamed, causing the sample to fail to compile against the new SDK.
---
## Failure 2: Microsoft.Maui.Client.UnitTests — 2 Test Failures
Helix jobs (Windows Debug: `b7f27aa0-8338-41de-8277-6c94d15bd6cc`, Windows Release: `bdc02c81-f17a-4b77-9848-1b2f807d7c46`, macOS Debug: `e28ec8b6-cf95-4028-a015-38a245715dfa`) all failed on `Microsoft.Maui.Client.UnitTests.dll`.
**Test 1:** `JdkManagerValidateInstallPathTests.ValidateInstallPath_ShallowPath_Throws`
```
Assert.Contains() Failure: Sub-string not found
String: "Refusing to use system directory as insta"...
Not found: "too shallow"
Stack trace: /_/src/Tools/tests/Microsoft.Maui.Client.UnitTests/ProcessRunnerTests.cs(154,0)
```
The production error message does not contain "too shallow" — the test expects one string, the code emits another.
**Test 2:** `DoctorServiceTests.RunAllChecksAsync_SetsStatusBasedOnChecks`
```
Assert.NotEqual() Failure: Values are equal
Expected: Not Unhealthy
Actual: Unhealthy
Stack trace: /_/src/Tools/tests/Microsoft.Maui.Client.UnitTests/DoctorServiceTests.cs(105,0)
A doctor health check is returning Unhealthy when the test expects it to be healthy.
Root Cause Assessment
| Failure | Category | Confidence | Notes |
|---|---|---|---|
| macOS CS0246/CS0101 errors | Code — Platform file glob / csproj issue | Medium | Android/MacCatalyst files unexpectedly included in net10.0-ios TFM build |
| macOS CS0115 errors | Code — API breaking change from version bump | Medium | OnAppearing, OnNavigatedTo, etc. not found; suspect eng/Versions.props change |
| Helix unit test failures | Code — Test/implementation mismatch | High | New tool added with failing assertions; tests check for strings that don't match production code |
Recommended Actions
- Fix test string mismatch in
src/Tools/tests/Microsoft.Maui.Client.UnitTests/ProcessRunnerTests.csline 154 — update expected error message from"too shallow"to match the actual error text"Refusing to use system directory as...", or fix the production error message. - Fix DoctorService health check — investigate
src/Tools/tests/Microsoft.Maui.Client.UnitTests/DoctorServiceTests.csline 105 to understand why a check returnsUnhealthywhen it should not. - Investigate macOS CS0115 errors — check if
eng/Versions.propsintroduced a dependency with a breaking API change (removedOnAppearing,OnNavigatedTo,OnNavigatingFromvirtual overrides fromPage). - Investigate CS0246/CS0101 platform file errors — verify
Maui.Controls.Sample.csprojis not inadvertently including Android and duplicate MacCatalyst files for thenet10.0-iosTFM; check if any.csprojglob was changed in this PR.
Related
- Build 1353764
- Helix Windows Debug job
- Helix Windows Release job
- PR Add Microsoft.Maui.Client tool for cross-platform device and SDK management #34498 — Add Microsoft.Maui.Client tool for cross-platform device and SDK management
Note
🔒 Integrity filtering filtered 2 items
Integrity filtering activated and filtered the following items during workflow execution.
This happens when a tool call accesses a resource that does not meet the required integrity or secrecy level of the workflow.
- issue:#0 (
search_issues: Resource 'issue:#0' has lower integrity than agent requires. Agent would need to drop integrity tags [unapproved:all approved:all] to trust this resource.) - pr:Add Microsoft.Maui.Client tool for cross-platform device and SDK management #34498 (
pull_request_read: Resource 'pr:Add Microsoft.Maui.Client tool for cross-platform device and SDK management #34498' has lower integrity than agent requires. Agent would need to drop integrity tags [unapproved:all approved:all] to trust this resource.)
🩺 Diagnosis by CI Failure Doctor for dotnet/maui
- expires on Apr 2, 2026, 7:10 PM UTC