getsentry / getsentry/sentry-react-native

Re-enable iOS stop() replay assertion in replayStopResume.yml once sentry-cocoa #9017 ships

Open
#6,721 1 comment 0 reactions 1 assignee Claimed by @antonis View on GitHub
iOS React-Native Session Replay Tests
Dominant language
TypeScript
Stars
1.8k
Forks
366
Avg merge
1d 9h
Merged PRs (30d)
89

Description

## Description

The E2E Maestro flow `dev-packages/e2e-tests/maestro/replayStopResume.yml` verifies that after a manual `Sentry.getReplay().stop()`, a subsequently captured error carries **no** replay id. This assertion is currently **gated to Android only** because it fails on iOS.

On iOS, sentry-cocoa's `stop()` halts recording but does not clear `scope.replayId`, so an error captured after `stop()` still carries the stopped replay's id. Android/sentry-java resets it to `EMPTY_ID`, so the assertion passes there. The gate was added in commit `c9c0789d` ("test(e2e): Gate replay stop() assertion to Android").

`pause()`/`resume()` coverage already runs on both platforms — only the post-`stop()` "no replay" assertion is platform-gated.

## The fix upstream

getsentry/sentry-cocoa#9017 ("fix: clear replayId when Session Replay stops") clears `scope.replayId` in `stopCurrentReplay()`, which will make iOS behave like Android.

## Action, once #9017 is released and bumped in this SDK

1. Remove the `when: platform: Android` gate in `replayStopResume.yml` and run the `stop()` -> clear event id -> prime buffer -> capture exception -> `assertNoReplay` steps cross-platform.
2. Remove the explanatory comment block referencing the cocoa fix.
3. Confirm the iOS E2E run is green.

Blocked on: getsentry/sentry-cocoa#9017 and its subsequent release + bump in `SDK-VERSIONS.md`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.