Skip to content

test(e2e): fix the nightly iOS 17 and Android 14 failures - #3981

Merged
isekovanic merged 1 commit into
developfrom
ci/e2e-nightly-flakes
Nov 12, 2026
Merged

isekovanic merged 1 commit into
developfrom
ci/e2e-nightly-flakes

Conversation

@testableapple

Copy link
Copy Markdown
Contributor

Ticket: https://linear.app/stream/issue/RN-520

🎯 Goal

Fix the failures in nightly 43138494994. Three jobs failed, for four separate reasons. None of them is a regression in the SDK.

πŸ›  Implementation details

iOS 17.5: test_messageListScrollsDown_whenMessageListIsScrolledDown_andUserReceivesNewMessage (fails in every nightly)

  • When a message arrives while the list is at the bottom, the scroll-to-bottom button shows for a moment while the list scrolls to it, then hides. The "button is hidden" assert could pass before the button appeared, and its single follow-up check then caught it on screen.
  • assertVisibility(false) now waits until the element has stayed hidden for 1 s.

Android API 34: "The app has unexpectedly disconnected from Detox server"

  • The app crashes natively right after launch (SIGSEGV in android_unsafe_frame_pointer_chase). Android 14 turns on GWP-ASan memory sampling for every app. On the x86_64 emulator, GWP-ASan crashes while recording the stack of a Hermes memory free. Both crashes had the same fault address.
  • The E2E app's manifest now sets android:gwpAsanMode="never".

Android API 34: "MockServer did not start within 5000ms"

  • Both failures, an hour apart, got the same port (41215) from the driver, and nothing ever answered on it.
  • The harness now picks a port itself that is free on both IPv4 and IPv6. localhost resolves to ::1 on CI, as the mock server logs show. It passes the port to /start, and retries the start on a new port up to 3 times.

Android API 36 (coverage batch 1): Polls tests

  • The keyboard was still open from the composer and covered the option field that appears below the filled one, so that field never counted as visible.
  • On Android, createPoll now taps the "Questions" label before each option field to hide the keyboard.

Not addressed: test_userLeavesGroupChannel failed on an empty channel actions sheet, which is the known SDK bug RN-489.

πŸ§ͺ Testing

  • iOS 17.5, iPhone 15 Pro, locally: the failing test failed 5/5 before the fix and passed 4/4 after it.
  • Android (Pixel API 37 emulator, release build with the new manifest): PollsTests 7/7. The built APK contains gwpAsanMode=0. The API 34 crash is random, so the nightly has to confirm that fix.
  • eslint, prettier and tsc -p e2e are clean.

β˜‘οΈ Checklist

  • I have signed the Stream CLA (required)
  • PR targets the develop branch
  • Documentation is updated
  • New code is tested in main example apps, including all possible scenarios
    • SampleApp iOS and Android
    • Expo iOS and Android

@isekovanic
isekovanic merged commit b74e7c8 into develop Nov 12, 2026
22 checks passed
@isekovanic
isekovanic deleted the ci/e2e-nightly-flakes branch November 12, 2026 12:09
@ghost

ghost commented Nov 12, 2026

Copy link
Copy Markdown

πŸŽ‰ This PR is included in version 10.0.2 πŸŽ‰

The release is available on:

Your semantic-release bot πŸ“¦πŸš€

@ghost ghost added the released label Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants