Fixes
- Session Replay: Fix a native crash (
SIGABRTon the RenderThread) when stopping a replay that uses the canvas screenshot strategy (#6342) - Session Replay: Keep the segment videos of a replay that stopped before the startup cleanup of previous replays ran (#6343)
- Report the number of dropped spans in client reports when a batched span envelope item is discarded, instead of a quantity of 1 (e.g. for Flutter span streaming) (#6265)
- Session Replay: Keep the flushed video and do not reuse its segment id when
stop()is called right afterflush()in buffer mode (#6340) - Keep sending events from Android 7.1.0 and older devices after Sentry changes its TLS certificate authority (#6227)
- In February 2027, Sentry moves its TLS certificates from DigiCert to Let's Encrypt and Google Trust Services (announcement).
- Android 7.1.0 (API 25) and older don't trust the Let's Encrypt root certificate (ISRG Root X1), so without this fix, the SDK on those devices can no longer send events to Sentry after the switch.
- The SDK now bundles ISRG Root X1 and trusts it in addition to the device's root certificates on API 25 and lower. This only applies to the SDK's own uploads to Sentry SaaS (DSNs on
sentry.io), not to self-hosted Sentry, not to any other connection your app makes, and not if you set your ownSentryOptions.setSslSocketFactory. - Apps need to update to an SDK version with this fix to keep sending events from these devices.
- Session Replay: Use a software canvas for video encoding on the Android Emulator to avoid a native crash in
eglDestroySurface(#6282)
Internal
- Measure the hostname cache TTL on the monotonic ticker the options provide, so that a device time change no longer shortens or extends it (#6100)
- Measure Session Replay's 1h recording cap and its touch-move debounce on a monotonic clock, so a device time change no longer stops a healthy recording early, keeps a finished one alive, or suppresses gesture events (#6090)
- Add
ScreenshotUtils.takeMaskedScreenshotso Hybrid SDKs can capture screenshots masked according toSentryAndroidOptions.getScreenshot()(#6281)