getsentry / getsentry/sentry-react-native
Re-enable iOS stop() replay assertion in replayStopResume.yml once sentry-cocoa #9017 ships
- 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
Assessment
This issue has not been assessed yet.