You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Prevent inflated cold app start when the OS spawns the process in the background (e.g. FCM push) on API 35+ (#5841, #5880)
Preserve single-sample ANR profile chunks so profiles remain available on ANR events (#5872)
Avoid a CPU busy-loop when recording discarded log or metric envelopes under rate limiting (#5835)
ClientReportRecorder now reads the item count from the envelope item header instead of deserializing the payload, which under sustained rate limiting could pin CPU cores while repeatedly throwing exceptions
Report tasks handed to a no-op ISentryExecutorService as cancelled (#5874)
NoOpSentryExecutorService previously returned a Future that was never run and never cancelled, so callers could not tell a dropped task from a queued one and get() would block until its timeout
Performance
Defer use of reflection by SentryFrameMetricsCollector during Sentry.init (#5886)
Avoid waiting up to shutdownTimeoutMillis when closing the SDK with a pending transaction timeout or session-end task (#5851)
Use RGB_565 instead of ARGB_8888 for screenshot and replay capture bitmaps, halving per-frame memory usage (#5821)
Remove an unused lock from SentryPerformanceProvider, which was allocated on every cold start in ContentProvider.onCreate without ever being acquired (#5871)
Reduce main-thread allocations when parsing the app start profiling config (#5867)
Batch and coalesce scope-persistence disk writes to reduce startup cost (#5791)
Scope mutations are now coalesced (latest value per field) and breadcrumbs are appended in batches behind a single fsync, instead of one synchronous disk write per mutation.
Reduce the number of SDK threads: the HostnameCache worker thread now times out while idle instead of staying alive for the whole process lifetime (#5817)