Skip to content

[CI Doctor] PR #34498 CI failures: macOS build (51 errors) + Microsoft.Maui.Client.UnitTests failures (2 tests) #34683

@github-actions

Description

@github-actions

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.cs line 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.cs line 105 to understand why a check returns Unhealthy when it should not.
  • Investigate macOS CS0115 errors — check if eng/Versions.props introduced a dependency with a breaking API change (removed OnAppearing, OnNavigatedTo, OnNavigatingFrom virtual overrides from Page).
  • Investigate CS0246/CS0101 platform file errors — verify Maui.Controls.Sample.csproj is not inadvertently including Android and duplicate MacCatalyst files for the net10.0-ios TFM; check if any .csproj glob was changed in this PR.

Related

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.

🩺 Diagnosis by CI Failure Doctor for dotnet/maui

  • expires on Apr 2, 2026, 7:10 PM UTC

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions