Skip to content

Fix Android nested carousel scrolling#35656

Merged
kubaflo merged 7 commits into
dotnet:inflight/currentfrom
AdamEssenmacher:issue-7814
Jun 2, 2026
Merged

Fix Android nested carousel scrolling#35656
kubaflo merged 7 commits into
dotnet:inflight/currentfrom
AdamEssenmacher:issue-7814

Conversation

@AdamEssenmacher
Copy link
Copy Markdown

Description of Change

Fixes Android touch arbitration for RecyclerView-backed MAUI items controls when nested inside a perpendicular parent scroll container.

A horizontal CarouselView or CollectionView inside a vertical ScrollView now releases vertical gestures to the nearest scrollable parent instead of continuing to hold the gesture in the RecyclerView. Own-axis gestures are still handled by the RecyclerView, and existing disabled ItemsView behavior plus CarouselView.IsSwipeEnabled behavior are preserved.

Adds an Android Appium regression page and test for the nested CarouselView scenario. The test verifies that vertical scrolling from inside the carousel works before and after a separate horizontal scroll gesture.

Issues Fixed

Fixes #7814

PureWeen and others added 6 commits May 21, 2026 16:04
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

## What
Restrict the agentic-labeler to apply **exactly one `area-*` label** per
item, while still allowing multiple `platform/*` labels.

## Why
Backfilling the 26 items affected by the `max:1` bug (fixed in dotnet#35540)
revealed that the labeler occasionally applies multiple `area-*` labels
for ambiguous cases:

- **dotnet#35501** got both `area-layout` and `area-safearea`
- **dotnet#35490** got both `area-navigation` and `area-controls-tabbedpage`

The intended behavior is exactly one best-fit `area-*` per item (a
label-quota distinction not expressible via
`safe-outputs.add-labels.max:` — that field counts total labels, not
labels per prefix). The fix has to live in the agent's instructions.

## Changes

### `.github/skills/agentic-labeler/SKILL.md`
- Scope section: "Exactly one `area-*`" / "One or more `platform/*`".
- Area rules section: renamed heading, changed "pick one or more" →
"apply exactly one".
- New **tie-breaking heuristics** for the area-* selection:
- Specific control beats generic area (`area-controls-tabbedpage` over
`area-navigation`)
  - Sub-area beats parent area (`area-safearea` over `area-layout`)
  - Subject-matter focus beats incidental touch
  - When genuinely tied, prefer the user-visible feature
- Mixed-PR rule clarified: infra-primary PRs get only
`area-infrastructure` (no second product area).

### `.github/workflows/agentic-labeler.md`
- Added explicit reinforcement in the workflow prompt: "Apply exactly
one `area-*` label … and one or more `platform/*` labels".
- Fixed two stale `max: 1` comments left over from dotnet#35540 (the cap is
now `max: 10`).

### `.github/workflows/agentic-labeler.lock.yml`
- Regenerated via `gh aw compile`. Diff is frontmatter-hash + heredoc
rotations only — no semantic change to the compiled config.

## Validation
- Reviewed all 21 existing eval scenarios in `tests/eval.yaml` — none
assert multiple `area-*` labels, so no test updates needed.
- The `max: 10` cap in `safe-outputs` is preserved as a blast-radius
safeguard (one area + several platforms still fit comfortably).

## Follow-ups (not in this PR)
If accuracy of the "one area" rule drops below ~95% in eval runs,
consider adding a deterministic post-step that strips extra `area-*`
labels per a known precedence list (Option B from the design
discussion).

Co-authored-by: bot <bot@test>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Description

Extends the `maui-copilot` DevDiv pipeline (pipeline 27723) with a
3-stage architecture that runs real UI tests on platform-pool agents and
reports results directly in the AI summary PR comment.

### Pipeline Workflow

```
┌─────────────────────────────────────────────────────────┐
│  Stage 1: ReviewPR                                      │
│                                                         │
│  STEP 1: Branch Setup (checkout + cherry-pick PR)       │
│  STEP 2: Detect UI Test Categories                      │
│  STEP 3: Run Detected UI Tests (in-process, fast)       │
│  STEP 4: Regression Cross-Reference                     │
│  STEP 5: Gate — verify tests fail/pass before/after fix │
│  STEP 6: Code Review — deep analysis via Copilot agent  │
│                                                         │
│  Outputs → CopilotLogs artifact + detectedCategories    │
└──────────────────────┬──────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────┐
│  Stage 2: RunDeepUITests (platform-pool agent)          │
│                                                         │
│  iOS: AcesShared Tahoe + iOS 26.4                       │
│  Android: ubuntu-22.04 + KVM + AVD                      │
│                                                         │
│  Runs BuildAndRunHostApp.ps1 per detected category      │
│  Outputs → drop-deep-uitests artifact (TRX + diffs)     │
└──────────────────────┬──────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────┐
│  Stage 3: PostResults                                   │
│                                                         │
│  1. Download CopilotLogs (review content files)         │
│  2. Download drop-deep-uitests (TRX results)            │
│  3. Merge deep results into uitests/content.md          │
│  4. Post full AI Summary comment on PR                  │
│  5. Apply labels (s/agent-reviewed, etc.)               │
│                                                         │
│  One comment with everything — no patching needed       │
└─────────────────────────────────────────────────────────┘
```

### What's New

**Deep UI Test Execution (Stage 2)**
- Runs detected UI test categories on proper platform-pool agents (not
in-process on Linux)
- **iOS**: AcesShared Tahoe agents with iOS 26.4 simulator, iPhone 11
Pro (matching `ios-26` baselines from PR dotnet#35061)
- **Android**: ubuntu-22.04 with KVM, AVD boot with `-partition-size
2048`, `ignoreHiddenApiPolicyError` capability
- TRX results + snapshot-diff PNGs published as `drop-deep-uitests`
artifact

**Unified Comment Posting (Stage 3)**
- Comment posting and label application deferred to Stage 3 (after deep
tests complete)
- Single AI summary comment includes ALL results: code review + deep
test results
- Nested collapsible `<details>` for failed tests with full error +
stack trace
- Dynamic section title: `🧪 UI Tests — CollectionView, TabbedPage`
- Artifact download link for snapshot-diff PNGs

**Android Emulator Improvements**
- AVD boot step with proper partition size, ADB key pre-authorization,
boot wait
- `DEVICE_UDID` pass-through prevents double emulator boot
- Disk cleanup on hosted ubuntu agents (frees ~22GB)
- KVM enablement + `appium:ignoreHiddenApiPolicyError` for API 30

**iOS Simulator Improvements**
- Tahoe pool demand ensures macOS 26.x agents
- Explicit iOS 26.4 download via latest Xcode
- Auto-creates iPhone 11 Pro for baseline resolution match

### Validation

Tested across 30+ pipeline iterations on 6 PRs:

| PR | iOS | Android |
|---|---|---|
| 35358 (ViewBaseTests) | **112/112 ALL PASS** ✅ | **118/119 PASS** ✅ |
| 35359 (TabbedPage) | 44/50 (1 real failure) | 74/75 (1 real failure) |
| 35356 (CollectionView) | **415/417 PASS** ✅ | 593/619 (26 real
failures) |

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…35589)

> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

Backport of dotnet#35460 to `main`.

/cc @PureWeen

Co-authored-by: HarishKumarSF4517 <harish.kumar@syncfusion.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35656

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35656"

@dotnet-policy-service dotnet-policy-service Bot added the community ✨ Community Contribution label May 29, 2026
@dotnet-policy-service
Copy link
Copy Markdown
Contributor

Hey there @@AdamEssenmacher! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed.

@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented May 29, 2026

/review -b feature/refactor-copilot-yml

MauiBot

This comment was marked as outdated.

@MauiBot MauiBot added s/agent-fix-win AI found a better alternative fix than the PR s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) labels May 29, 2026
@MauiBot

This comment has been minimized.

Copy link
Copy Markdown
Contributor

@kubaflo kubaflo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please check the ai's suggestions?

Copy link
Copy Markdown
Contributor

@kubaflo kubaflo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you check the filling tests and the ai's suggestions?

@AdamEssenmacher
Copy link
Copy Markdown
Author

@kubaflo the AI suggestions should have been addressed sufficiently in ee03f4d

I'm not convinced the test failures are from this PR. Can we get a re-run?

@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Jun 1, 2026

/review -b feature/enhanced-reviewer

@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Jun 1, 2026

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 3 pipeline(s).

@MauiBot MauiBot added the s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates label Jun 1, 2026
Copy link
Copy Markdown
Collaborator

@MauiBot MauiBot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review Summary

@AdamEssenmacher — new AI review results are available based on this last commit: ee03f4d.
Stabilize Android nested scroll gesture ownership To request a deterministic rerun after new comments or commits, comment /review rerun.

Gate Passed Code Review In Review Confidence Medium Platform Android

Review Sessions — click to expand
Gate — Test Before & After Fix

Gate Result: ✅ PASSED

Platform: ANDROID · Base: main · Merge base: b0ea772f

Test Without Fix (expect FAIL) With Fix (expect PASS)
🖥️ Issue7814 Issue7814 ✅ FAIL — 870s ✅ PASS — 1248s
🔴 Without fix — 🖥️ Issue7814: FAIL ✅ · 870s

(truncated to last 15,000 chars)

ui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

7)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

8)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

9)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

10)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

11)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

12)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

13)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

14)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

15)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

16)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

17)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

18)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

19)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

20)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

21)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

22)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

23)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

24)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

25)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

26)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

27)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

28)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56

29)    at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.<>c__DisplayClass8_0.<VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture>b__2() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 58
   at UITest.Appium.HelperExtensions.RetryAssert(IApp app, Action assertToRetry, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 965
   at Microsoft.Maui.TestCases.Tests.Issues.Issue7814.VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue7814.cs:line 56


NUnit Adapter 4.5.0.0: Test execution complete
Results File: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue7814.trx

Total tests: 1
     Failed: 1
Test Run Failed.
 Total time: 1.7294 Minutes
>>> TRX_RESULT_FILE: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue7814.trx

🟢 With fix — 🖥️ Issue7814: PASS ✅ · 1248s

(truncated to last 15,000 chars)

ses.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010: --- End of stack trace from previous location --- [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at AndroidDeviceExtensions.PushAndInstallPackageAsync(AndroidDevice device, PushAndInstallCommand command, CancellationToken token) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at AndroidDeviceExtensions.PushAndInstallPackageAsync(AndroidDevice device, PushAndInstallCommand command, CancellationToken token) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at Xamarin.Android.Tasks.FastDeploy.InstallPackage(Boolean installed) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at Xamarin.Android.Tasks.FastDeploy.InstallPackage(Boolean installed) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at Xamarin.Android.Tasks.FastDeploy.RunInstall() [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]

Build FAILED.

/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010: Mono.AndroidTools.InstallFailedException: Unexpected install output: cmd: Failure calling service package: Broken pipe (32) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:  [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at Mono.AndroidTools.Internal.AdbOutputParsing.CheckInstallSuccess(String output, String packageName) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at Mono.AndroidTools.AndroidDevice.<>c__DisplayClass105_0.<InstallPackage>b__0(Task`1 t) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010: --- End of stack trace from previous location --- [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010: --- End of stack trace from previous location --- [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at AndroidDeviceExtensions.PushAndInstallPackageAsync(AndroidDevice device, PushAndInstallCommand command, CancellationToken token) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at AndroidDeviceExtensions.PushAndInstallPackageAsync(AndroidDevice device, PushAndInstallCommand command, CancellationToken token) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at Xamarin.Android.Tasks.FastDeploy.InstallPackage(Boolean installed) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at Xamarin.Android.Tasks.FastDeploy.InstallPackage(Boolean installed) [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
/home/vsts/work/1/s/.dotnet/packs/Microsoft.Android.Sdk.Linux/36.1.2/tools/Xamarin.Android.Common.Debugging.targets(333,5): error ADB0010:    at Xamarin.Android.Tasks.FastDeploy.RunInstall() [/home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-android]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:10:00.85
* daemon not running; starting now at tcp:5037
* daemon started successfully
  Determining projects to restore...
  All projects are up-to-date for restore.
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Graphics -> /home/vsts/work/1/s/artifacts/bin/Graphics/Debug/net10.0-android36.0/Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Essentials -> /home/vsts/work/1/s/artifacts/bin/Essentials/Debug/net10.0-android36.0/Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Core -> /home/vsts/work/1/s/artifacts/bin/Core/Debug/net10.0-android36.0/Microsoft.Maui.dll
  Controls.BindingSourceGen -> /home/vsts/work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Maps -> /home/vsts/work/1/s/artifacts/bin/Maps/Debug/net10.0-android36.0/Microsoft.Maui.Maps.dll
  Controls.Core -> /home/vsts/work/1/s/artifacts/bin/Controls.Core/Debug/net10.0-android36.0/Microsoft.Maui.Controls.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Controls.Foldable -> /home/vsts/work/1/s/artifacts/bin/Controls.Foldable/Debug/net10.0-android36.0/Microsoft.Maui.Controls.Foldable.dll
  Controls.Xaml -> /home/vsts/work/1/s/artifacts/bin/Controls.Xaml/Debug/net10.0-android36.0/Microsoft.Maui.Controls.Xaml.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Microsoft.AspNetCore.Components.WebView.Maui -> /home/vsts/work/1/s/artifacts/bin/Microsoft.AspNetCore.Components.WebView.Maui/Debug/net10.0-android36.0/Microsoft.AspNetCore.Components.WebView.Maui.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Controls.Maps -> /home/vsts/work/1/s/artifacts/bin/Controls.Maps/Debug/net10.0-android36.0/Microsoft.Maui.Controls.Maps.dll
  Controls.TestCases.HostApp -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Controls.TestCases.HostApp.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Graphics -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Essentials -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Core -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.Maui.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Controls.BindingSourceGen -> /home/vsts/work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
  Maps -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.Maui.Maps.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Controls.Core -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.Maui.Controls.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Microsoft.AspNetCore.Components.WebView.Maui -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.AspNetCore.Components.WebView.Maui.dll
  Controls.Foldable -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.Maui.Controls.Foldable.dll
  Controls.Xaml -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.Maui.Controls.Xaml.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Controls.Maps -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-android/Microsoft.Maui.Controls.Maps.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:08:18.28
Broadcasting: Intent { act=android.intent.action.CLOSE_SYSTEM_DIALOGS flg=0x400000 }
Broadcast completed: result=0
  Determining projects to restore...
  All projects are up-to-date for restore.
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Graphics -> /home/vsts/work/1/s/artifacts/bin/Graphics/Debug/net10.0/Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Essentials -> /home/vsts/work/1/s/artifacts/bin/Essentials/Debug/net10.0/Microsoft.Maui.Essentials.dll
  Controls.CustomAttributes -> /home/vsts/work/1/s/artifacts/bin/Controls.CustomAttributes/Debug/net10.0/Controls.CustomAttributes.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Core -> /home/vsts/work/1/s/artifacts/bin/Core/Debug/net10.0/Microsoft.Maui.dll
  Controls.BindingSourceGen -> /home/vsts/work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14247417
  Controls.Core -> /home/vsts/work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
  UITest.Core -> /home/vsts/work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
  UITest.NUnit -> /home/vsts/work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
  UITest.Appium -> /home/vsts/work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
  VisualTestUtils -> /home/vsts/work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
  VisualTestUtils.MagickNet -> /home/vsts/work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
  UITest.Analyzers -> /home/vsts/work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
  Controls.TestCases.Android.Tests -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll
Test run for /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.12]   Discovering: Controls.TestCases.Android.Tests
[xUnit.net 00:00:00.48]   Discovered:  Controls.TestCases.Android.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll
   NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 06/01/2026 12:33:59 FixtureSetup for Issue7814(Android)
>>>>> 06/01/2026 12:34:00 VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture Start
>>>>> 06/01/2026 12:34:09 VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture Stop
  Passed VerticalScrollFromCarouselWorksAfterHorizontalScrollViewGesture [9 s]
NUnit Adapter 4.5.0.0: Test execution complete
Results File: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue7814.trx

Test Run Successful.
Total tests: 1
     Passed: 1
 Total time: 27.6212 Seconds
>>> TRX_RESULT_FILE: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue7814.trx

📁 Fix files reverted (3 files)
  • eng/pipelines/ci-copilot.yml
  • src/Controls/src/Core/Handlers/Items/Android/MauiRecyclerView.cs
  • src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt

UI Tests — CarouselView,CollectionView

Detected UI test categories: CarouselView,CollectionView

Deep UI tests — 677 passed, 28 failed across 2 categories on platform-pool agent (replaces in-process counts above).

🧪 UI Test Execution Results (deep, platform pool)

Category Tests Snapshot diffs
CarouselView 84/87 (3 ❌) 1 diff PNG
CollectionView 593/618 (25 ❌)
CarouselView — 3 failed tests
CarouselViewKeepPositionChangingOrientation
OpenQA.Selenium.InvalidElementStateException : Screen rotation cannot be changed to ROTATION_0 after 2000ms. Is it locked programmatically?
at OpenQA.Selenium.WebDriver.UnpackAndThrowOnError(Response errorResponse, String commandToExecute)
   at OpenQA.Selenium.WebDriver.ExecuteAsync(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.WebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Appium.AppiumDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Appium.AppiumDriver.set_Orientation(ScreenOrientation value)
   at UITest.Appium.AppiumOrientationActions.SetOrientationPortrait(IDictionary`2 parameters) in /_/src/TestUtils/src/UITest.Appium/Actions/AppiumOrientationActions.cs:line 43
   at UITest.Appium.AppiumOrientationActions.Execute(String commandName, IDictionary`2 parameters) in /_/src/TestUtils/src/UITest.Appium/Actions/AppiumOrientationActions.cs:line 34
   at UITest.Appi
...
VerticalCarouselMandatorySingleSnapAdvancesOneCard
VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VerticalCarouselMandatorySingleSnapAdvancesOneCard.png (4.87% difference)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.Issues.Issue33308.VerticalCarouselMandatorySingleSnapAdvancesOneCard() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue33308.cs:line 26
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
 
...
CurrentItemShouldWork
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.Issues.Issue28524.CurrentItemShouldWork() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue28524.cs:line 21
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Metho
...
CollectionView — 25 failed tests
VerifyGroupIndexScrollToByIndexWithStartPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupIndexScrollToByIndexWithStartPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2918
   at System.Reflec
...
VerifyGroupIndexScrollToByIndexWithEndPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupIndexScrollToByIndexWithEndPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 3134
   at System.Reflecti
...
VerifyGroupItemScrollToByItemWithCenterPositionAndVerticalList_Potato
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupItemScrollToByItemWithCenterPositionAndVerticalList_Potato() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2007
   at System.Runtime
...
VerifyScrollToByIndexWithEndPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyScrollToByIndexWithEndPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2376
   at System.RuntimeMethodHandl
...
VerifyGroupItemScrollToByIndexWithEndPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupItemScrollToByIndexWithEndPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 3561
   at System.RuntimeMe
...
VerifyGroupItemScrollToByIndexWithCenterPositionAndHorizontalList_Tomato
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupItemScrollToByIndexWithCenterPositionAndHorizontalList_Tomato() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 3453
   at System.Refl
...
VerifyScrollToByIndexWithCenterPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyScrollToByIndexWithCenterPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2295
   at System.RuntimeMethodHa
...
VerifyGroupItemScrollToByIndexWithStartPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupItemScrollToByIndexWithStartPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 3345
   at System.Runtime
...
VerifyGroupIndexScrollToByIndexWithCenterPositionAndVerticalList_Potato
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupIndexScrollToByIndexWithCenterPositionAndVerticalList_Potato() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 1874
   at System.Refle
...
VerifyGroupItemScrollToByItemWithMakeVisiblePositionAndVerticalList_Apricot
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupItemScrollToByItemWithMakeVisiblePositionAndVerticalList_Apricot() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 1943
   at System.R
...
VerifyGroupIndexScrollToByIndexWithStartPositionAndVerticalList_Carrot
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupIndexScrollToByIndexWithStartPositionAndVerticalList_Carrot() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 1838
   at System.Reflec
...
VerifyGroupItemScrollToByIndexWithMakeVisiblePositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupItemScrollToByIndexWithMakeVisiblePositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 3241
   at System.R
...
VerifyScrollToByItemWithStartPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyScrollToByItemWithStartPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2541
   at System.RuntimeMethodHand
...
VerifyScrollToByIndexWithStartPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyScrollToByIndexWithStartPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2214
   at System.RuntimeMethodHan
...
VerifyGroupIndexScrollToByIndexWithMakeVisiblePositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupIndexScrollToByIndexWithMakeVisiblePositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2810
   at System.
...
CanReorderWithItemDataTemplateSelector
Assert.That(expectedText, Is.EqualTo("Success"))
  Expected string length 7 but was 0. Strings differ at index 0.
  Expected: "Success"
  But was:  <string.Empty>
  -----------^
at Microsoft.Maui.TestCases.Tests.Issues.Issue32223.CanReorderWithItemDataTemplateSelector() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue32223.cs:line 22
   at InvokeStub_Issue32223.CanReorderWithItemDataTemplateSelector(Object, Object, IntPtr*)

1)    at Microsoft.Maui.TestCases.Tests.Issues.Issue32223.CanReorderWithItemDataTemplateSelector() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue32223.cs:line 22
   at InvokeStub_Issue32223.CanReorderWithItemDataTemplateSelector(Object, Object, IntPtr*)
VerifyGroupItemScrollToByIndexWithEndPositionAndHorizontalGrid_Potato
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupItemScrollToByIndexWithEndPositionAndHorizontalGrid_Potato() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 3597
   at System.Runtime
...
VerifyScrollToByItemWithEndPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyScrollToByItemWithEndPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2715
   at System.RuntimeMethodHandle
...
VerifyScrollToByItemWithCenterPositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyScrollToByItemWithCenterPositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2628
   at System.RuntimeMethodHan
...
VerifyScrollToByItemWithMakeVisiblePositionAndHorizontalList_Kiwi
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyScrollToByItemWithMakeVisiblePositionAndHorizontalList_Kiwi() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 2458
   at System.RuntimeMeth
...
VerifyGroupIndexScrollToByIndexWithEndPositionAndHorizontalGrid_Potato
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupIndexScrollToByIndexWithEndPositionAndHorizontalGrid_Potato() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 3170
   at System.Reflec
...
VisitAndUpdateItemsSource("Observable Collection","Add/RemoveItemsGrid",19,6)
The app was expected to be running still, investigate as possible crash
TearDown : The app was expected to be running still, investigate as possible crash
at UITest.Appium.NUnit.UITestBase.UITestBaseTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 159
   at UITest.Appium.NUnit.UITestBase.TestTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 45
   at InvokeStub_UITestBase.TestTearDown(Object, Object, IntPtr*)

--TearDown
   at UITest.Appium.NUnit.UITestBase.UITestBaseTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 159
   at UITest.Appium.NUnit.UITestBase.TestTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 45
   at InvokeStub_UITestBase.TestTearDown(Object, Object, IntPtr*)

1)    at UITest.Appium.NUnit.UITestBase.UITestBaseTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 159
   at UITest.Appium.NUnit.UITestBase.TestTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 45
   at InvokeS
...
VerifyGroupIndexScrollToByIndexWithMakeVisiblePositionAndVerticalList_Apricot
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupIndexScrollToByIndexWithMakeVisiblePositionAndVerticalList_Apricot() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 1802
   at System
...
VerifyRemainingItemsThresholdReachedWithHorizontalList
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyRemainingItemsThresholdReachedWithHorizontalList() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 3652
   at System.RuntimeMethodHandle.In
...
VerifyGroupItemScrollToByItemWithStartPositionAndVerticalList_Carrot
System.TimeoutException : Timed out waiting for element...
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2757
   at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2784
   at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 793
   at Microsoft.Maui.TestCases.Tests.CollectionView_ScrollingFeatureTests.VerifyGroupItemScrollToByItemWithStartPositionAndVerticalList_Carrot() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/CollectionView_ScrollingFeatureTests.cs:line 1974
   at System.RuntimeM
...

📎 Download drop-deep-uitests artifact (TRX + snapshot diffs)


Pre-Flight — Context & Validation

Issue: #7814 - Vertical scrolling not working for CarouselView and CustomLayouts
PR: #35656 - Fix Android nested carousel scrolling
Platforms Affected: Android
Files Changed: 2 implementation, 2 test

Key Findings

  • The PR changes Android MauiRecyclerView gesture arbitration for RecyclerView-backed MAUI items controls nested in perpendicular scroll parents.
  • The linked regression is a horizontal CarouselView inside a vertical ScrollView; the completed gate shows the new UI test fails without the fix and passes with the PR fix.
  • Changed test coverage is Android Appium UI coverage under Issue7814, categorized as CarouselView and CollectionView impact.
  • Public API metadata is updated because MauiRecyclerView.DispatchTouchEvent(MotionEvent) is an added protected override on Android.

Code Review Summary

Verdict: NEEDS_DISCUSSION
Confidence: medium
Errors: 0 | Warnings: 1 | Suggestions: 0

Key code review findings:

  • ⚠️ CI is not green yet: Android CarouselView UI checks relevant to this PR passed, but unrelated/pending Android failures should be classified before merge.

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #35656 Adds Android MauiRecyclerView.DispatchTouchEvent parent gesture dispatcher that locks gesture ownership after touch slop, cancels RecyclerView gestures, and forwards perpendicular gestures to the nearest scrollable parent. ✅ PASSED (Gate) MauiRecyclerView.cs, Android PublicAPI, UI test page/test Original PR

Code Review — Deep Analysis

Code Review — PR #35656

Independent Assessment

What this changes: Adds Android MauiRecyclerView touch arbitration that, once movement exceeds touch slop, keeps own-axis gestures on the RecyclerView and forwards perpendicular gestures to the nearest scrollable parent. It also adds PublicAPI metadata and an Android UI regression page/test for a horizontal CarouselView inside a vertical ScrollView.
Inferred motivation: Nested RecyclerView-backed controls were retaining gestures that should scroll a perpendicular parent, especially after interacting with another nested horizontal scroller.

Reconciliation with PR Narrative

Author claims: The PR fixes Android nested carousel/collection scrolling for perpendicular parent containers, preserves disabled ItemsView and CarouselView.IsSwipeEnabled behavior, and adds an Android Appium regression test for #7814.
Agreement/disagreement: The code matches those claims. The dispatcher locks ownership after touch slop, forwards synthetic down/move events to a scrollable parent, preserves existing disabled checks, and treats disabled carousel swipe as unable to claim own-axis parent interception.

Findings

⚠️ Warning — CI is not green yet

GitHub checks for ee03f4d98accce3d11d0d5c0fa8b2e9983f4eae7 are still pending and include failures in maui-pr-uitests (Android UITests Controls (API 30) WebView) and maui-pr-devicetests (net10.0 Android CoreCLR Helix Tests Run DeviceTests Android (CoreCLR)). The Android CarouselView UI checks relevant to this PR have passed, and the WebView failure appears unrelated by area, but the Android CoreCLR device-test failure should be resolved or classified before merge.

Devil's Advocate

I looked for hot-path allocation churn, gesture ownership flipping, disabled-state regressions, IsSwipeEnabled regressions, and incorrect parent scroll direction checks. The current implementation caches the delegate, locks ownership after slop, recycles obtained MotionEvents, and computes Android CanScroll* directions consistently with the intended finger motion. One blind spot is that I did not run the UI/device tests locally in this Linux environment; CI remains the empirical gate.

Verdict: NEEDS_DISCUSSION

Confidence: medium
Summary: I found no concrete code-level correctness issues to request changes for, and no inline findings were written. However, CI is not complete and has Android failures, so this should not be treated as ready for approval until those failures are investigated or marked unrelated infrastructure/flake.


Fix — Analysis & Comparison

Fix Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix Parent-intercept release after touch slop; no manual event forwarding. ❌ FAILED 2 files Built and ran, but final upward vertical drag from carousel did not scroll parent (expected <85, actual 105).
2 try-fix Disable Android RecyclerView nested scrolling with NestedScrollingEnabled = false. ❌ FAILED 2 files Same final assertion failure as candidate 1; configuration alone does not transfer a valid parent gesture stream.
3 try-fix Cancel RecyclerView and scroll nearest perpendicular parent directly with ScrollBy deltas. ✅ PASSED 1 file Passes Issue7814, but is not better than PR because it bypasses native touch-stream/velocity semantics.
PR PR #35656 Cancel RecyclerView and replay adjusted touch events to the nearest scrollable parent. ✅ PASSED (Gate) 4 files Original PR; broader and more native-semantics-preserving than candidate 3.

Iteration Notes

  • try-fix-1 failure lesson: RequestDisallowInterceptTouchEvent(false) after RecyclerView has become the active target is insufficient; the parent does not receive a complete touch sequence for the later upward drag.
  • try-fix-2 failure lesson: Disabling nested scrolling does not solve the target ownership problem; the final vertical gesture remains trapped in/under the RecyclerView path.
  • try-fix-3 result: Direct parent ScrollBy can satisfy the regression, proving that transferring perpendicular deltas is enough for the test scenario, but the approach is less robust than handing the gesture to the parent as touch input.

Cross-Pollination

Model/Reviewer Round New Ideas? Details
maui-expert-reviewer 1 Yes Suggested avoiding PR-style forwarding first by trying parent interception/release semantics.
maui-expert-reviewer 2 Yes After try-fix-1 failed, suggested trying Android nested-scrolling configuration/ownership alternatives.
maui-expert-reviewer 3 Yes After try-fix-2 failed, explored a final direct-delta transfer mechanism.

Exhausted: Yes
Selected Fix: PR's fix — Candidate 3 passes the regression but is not demonstrably better; the PR's parent touch-event replay preserves native parent gesture handling more reliably than direct ScrollBy deltas.


Report — Final Recommendation

Comparative Report — PR #35656

Candidates

Rank Candidate Result Assessment
1 pr ✅ PASSED Best overall candidate. It cancels RecyclerView ownership after detecting a perpendicular gesture and replays a valid touch stream to the nearest scrollable parent, preserving native parent ScrollView gesture semantics better than direct delta scrolling.
1 pr-plus-reviewer ✅ PASSED Equivalent to pr; the expert reviewer found no actionable issues, so no additional sandbox changes were applied.
3 try-fix-3 ✅ PASSED Passes the regression by directly scrolling the parent with perpendicular deltas, but is ranked below the PR because it bypasses Android touch-stream, velocity, edge-effect, and parent-specific gesture handling semantics.
4 try-fix-1 ❌ FAILED Releasing parent interception after touch slop was insufficient once RecyclerView had become the active target; the final upward vertical drag remained trapped and failed the regression.
5 try-fix-2 ❌ FAILED Disabling RecyclerView nested scrolling did not transfer a valid parent gesture stream; it failed the same final vertical-scroll assertion as try-fix-1.

Winner

pr is the winning candidate. It passed the gate, has no actionable expert-review findings, and is more behaviorally faithful than the only passing try-fix alternative because it forwards touch input to the native parent instead of manually applying scroll deltas.

pr-plus-reviewer is not selected separately because it is identical to pr; selecting pr more accurately represents the raw submitted fix as sufficient.


Future Action — review latest findings

No alternative fix was selected for this run. Review the session findings and CI results before merging.

Copy link
Copy Markdown
Contributor

@kubaflo kubaflo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please check the failing tests?

@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Jun 1, 2026

/azp run maui-pr-uitests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@AdamEssenmacher
Copy link
Copy Markdown
Author

Current as of the PR CI state I inspected. I grouped cascades where the recorded failures share the same root cause.

CI check Recorded failure(s) Likely reason Relationship to PR
macOS UITests Controls WebView CookiesCorrectlyLoadWithMultipleWebViews timed out with Failied on: 1 Mac Catalyst WebView/Appium cookie-state or timing flake. Retry reduced the WebView job from many failures to this one. Very unlikely related. Different platform and WebView path, not Android carousel scrolling.
macOS UITests Controls WebView First run WebView failures: navigation, HTML source, shadow, cookies, JS eval, reload First failure was an Appium command timeout; the rest look like fallout from an unhealthy WebView/Appium session. Not related to the PR.
Android UITests Controls API 30 Entry Issue852TestsEntriesClickable timed out waiting for an element Matches the local device repro. Keyboard/scrolling made WelcomeLabel unavailable to Appium after focus changes. Your Issue852.cs fix addresses this by caching entries and validating focus via the focused attribute. Not caused by the carousel PR, but it is a real test fragility that can block CI.
Android UITests Controls API 30 Entry Retry had many Entry failures in OneTimeSetUp, waiting for “Go To Test” Cascade/session issue after the first failure; not meaningful as separate product failures. Not related to the PR.
Android UITests Controls API 30 CollectionView No tests ran; install failed with device offline / PACKAGE_INSTALLATION_FAILURE CI emulator/ADB infrastructure failure. Not related. The PR-specific Issue7814 test passed locally on physical device.
Android UITests CoreCLR API 30 Page/Performance/Picker/ProgressBar Snapshot diffs in ContentPage_HideSoftinput_WithPaddingAndBackground, ContentPage_HideSoftinput_WithRTLAndPadding, ContentPage_Title_WithPaddingAndHideSoftInput Likely CI rendering/environment variance. On the matching API 30 AVD, all three passed locally and produced byte-identical snapshots. Not related to nested carousel scrolling.
Android UITests CoreCLR API 30 Page/Performance/Picker/ProgressBar Retry failed MemoryLeakInFormsAppCompatActivity Known Android/net10 memory-leak test issue; locally it is skipped by [Ignore("Failing on net10 ... #27411")]. Not related to the PR.
Android DeviceTests Mono SecureStorage failures: Set_Get_Remove_Async_MultipleTimes, Asymmetric_to_Symmetric_API_Upgrade, two Saves_And_Loads cases returning null Android SecureStorage/keystore/device-state CI issue. Essentials device tests passed locally on the physical device. Very unlikely related. PR does not touch Essentials/SecureStorage.
Android DeviceTests CoreCLR RequestsCanBeInterceptedAndCustomDataReturnedForDifferentHosts returned Failed to fetch Matches the local device repro. The test depended on external/preflight behavior from echo.free.beeceptor.com; your BlazorWebView CORS OPTIONS handling fix addresses it. Not caused by the carousel PR, but a real independent test bug.
Windows DeviceTests SwitchingWindowsPostsToTheNewWindow failed ActiveWindowTracker assertion Windows active-window event/message tracking race or timing issue. Not related. Different platform and subsystem.
Windows BlazorWebView DeviceTests packaged/unpackaged RequestsCanBeInterceptedAndCustomDataReturnedForDifferentHosts returned Failed to fetch Same BlazorWebView different-host/CORS preflight issue as Android CoreCLR. Your request-interception fix should be relevant here too. Not related to the PR.
Windows BlazorWebView DeviceTests unpackaged RequestsCanBeInterceptedAndCaseInsensitiveHeadersRead had empty headers Likely adjacent to the same external-host/interception path instability; the CORS/preflight fix may help, but this specific case still needs verification. Not related to the PR.
Build Analysis Failing check, not a test failure Aggregates/reporting fallout from failed jobs. No independent PR signal.

@kubaflo kubaflo changed the base branch from main to inflight/current June 2, 2026 10:37
@kubaflo kubaflo merged commit 1f8dd5f into dotnet:inflight/current Jun 2, 2026
154 of 162 checks passed
@github-actions github-actions Bot added this to the .NET 10.0 SR8 milestone Jun 2, 2026
@AdamEssenmacher AdamEssenmacher deleted the issue-7814 branch June 2, 2026 19:48
PureWeen pushed a commit that referenced this pull request Jun 2, 2026
### Description of Change

Fixes Android touch arbitration for RecyclerView-backed MAUI items
controls when nested inside a perpendicular parent scroll container.

A horizontal `CarouselView` or `CollectionView` inside a vertical
`ScrollView` now releases vertical gestures to the nearest scrollable
parent instead of continuing to hold the gesture in the RecyclerView.
Own-axis gestures are still handled by the RecyclerView, and existing
disabled `ItemsView` behavior plus `CarouselView.IsSwipeEnabled`
behavior are preserved.

Adds an Android Appium regression page and test for the nested
`CarouselView` scenario. The test verifies that vertical scrolling from
inside the carousel works before and after a separate horizontal scroll
gesture.

### Issues Fixed

Fixes #7814

---------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-collectionview community ✨ Community Contribution platform/android s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Vertical scrolling not working for CarouselView and CustomLayouts

4 participants