Skip to content

Android crash on io.sentry.android.replay.ScreenshotRecorder.capture #5159

@Jojr

Description

@Jojr

What React Native libraries do you use?

React Navigation

Are you using sentry.io or on-premise?

sentry.io (SaS)

@sentry/react-native SDK Version

6.13.1

How does your development environment look like?

⬇  Place the `npx react-native@latest info` output here. ⬇
System:
  OS: macOS 15.6
  CPU: (10) arm64 Apple M1 Pro
  Memory: 170.64 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.8.0
    path: ~/.nvm/versions/node/v20.8.0/bin/node
  Yarn: Not Found
  npm:
    version: 10.1.0
    path: ~/.nvm/versions/node/v20.8.0/bin/npm
  Watchman:
    version: 2024.08.26.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.15.2
    path: /usr/local/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 24.0
      - iOS 18.0
      - macOS 15.0
      - tvOS 18.0
      - visionOS 2.0
      - watchOS 11.0
  Android SDK: Not Found
IDEs:
  Android Studio: 2024.1 AI-241.18034.62.2412.12266719
  Xcode:
    version: 16.0/16A242d
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.11
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react: Not Found
  react-native:
    installed: 0.79.5
    wanted: 0.72.9
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false



Sentry.init()

Sentry.init({
  dsn: Config.SENTRY_DSN,
      release: Config.APP_VERSION_NAME,
      dist: Config.APP_VERSION_CODE,
      sendDefaultPii: true,
      tracesSampleRate: 0.1,
      profilesSampleRate: 1.0,
      replaysSessionSampleRate: 0,
      replaysOnErrorSampleRate: 0.05,
      integrations: [
        Sentry.mobileReplayIntegration({
          maskAllText: false,
          maskAllImages: false,
          maskAllVectors: false,
        }),
        Sentry.appStartIntegration(),
        Sentry.reactNativeTracingIntegration(),
        this.navigationIntegration,
        featureFlagsIntegration(),
      ],
      enableAutoSessionTracking: true,
      sessionTrackingIntervalMillis: 1000,
      enableCaptureFailedRequests: true,
      enableUserInteractionTracing: true,
      attachScreenshot: false,
      debug: false,
});

Steps to Reproduce

  1. Build a Android release
  2. Publish on Play Store

Expected Result

No crashes related to io.sentry.android.replay.ScreenshotRecorder.capture.

Actual Result

Android Vitals identify a crash that occurs on some devices.
`[base.apk] io.sentry.android.replay.ScreenshotRecorder.capture$lambda$2$lambda$1$lambda$0``

Thread: Error, cannot access an invalid/free'd bitmap here!

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 5860 >>> com.[redacted].mobile <<<

backtrace:
  #00  pc 0x0000000000096044  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
  #01  pc 0x00000000008a0c74  /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+476)
  #02  pc 0x0000000000016188  /apex/com.android.art/lib64/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_0::__invoke(char const*)+80)
  #03  pc 0x00000000000092d0  /system/lib64/liblog.so (__android_log_assert+288)
  #04  pc 0x00000000004b787c  /system/lib64/libhwui.so (android::CanvasJNI::initRaster(_JNIEnv*, _jobject*, long) (.__uniq.217368827436880524487899401922132398377)+156)
  #05  pc 0x0000000000d796d4  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+84)
  #06  pc 0x0000000000798714  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.graphics.Canvas.<init>+148)
  #07  pc 0x000000000068a120  /apex/com.android.art/lib64/libart.so (nterp_helper+4016)
  #08  pc 0x0000000000224244  /data/app/~~6IOWUCmk3OA3LixcmYAeqA==/com.[redacted].mobile-ENukuv9gnGdhIFjgy59-2Q==/base.apk (io.sentry.android.replay.ScreenshotRecorder.capture$lambda$2$lambda$1$lambda$0+28)
  #09  pc 0x00000000006891a4  /apex/com.android.art/lib64/libart.so (nterp_helper+52)
  #10  pc 0x0000000000224070  /data/app/~~6IOWUCmk3OA3LixcmYAeqA==/com.[redacted].mobile-ENukuv9gnGdhIFjgy59-2Q==/base.apk (io.sentry.android.replay.ScreenshotRecorder.$r8$lambda$hOmWae1kyF6mWi7KXGcNm5EWXKw)
  #11  pc 0x00000000006891a4  /apex/com.android.art/lib64/libart.so (nterp_helper+52)
  #12  pc 0x00000000002233e4  /data/app/~~6IOWUCmk3OA3LixcmYAeqA==/com.[redacted].mobile-ENukuv9gnGdhIFjgy59-2Q==/base.apk (io.sentry.android.replay.ScreenshotRecorder$$ExternalSyntheticLambda0.run+8)
  #13  pc 0x000000000068aee4  /apex/com.android.art/lib64/libart.so (nterp_helper+7540)
  #14  pc 0x000000000022a1a6  /data/app/~~6IOWUCmk3OA3LixcmYAeqA==/com.[redacted].mobile-ENukuv9gnGdhIFjgy59-2Q==/base.apk (io.sentry.android.replay.util.ExecutorsKt.submitSafely$lambda$2+30)
  #15  pc 0x00000000006891a4  /apex/com.android.art/lib64/libart.so (nterp_helper+52)
  #16  pc 0x0000000000229fb4  /data/app/~~6IOWUCmk3OA3LixcmYAeqA==/com.[redacted].mobile-ENukuv9gnGdhIFjgy59-2Q==/base.apk (io.sentry.android.replay.util.ExecutorsKt.$r8$lambda$OI4or47ljFo6-uWPc4iTyEjSAc8)
  #17  pc 0x00000000006891a4  /apex/com.android.art/lib64/libart.so (nterp_helper+52)
  #18  pc 0x0000000000229ce0  /data/app/~~6IOWUCmk3OA3LixcmYAeqA==/com.[redacted].mobile-ENukuv9gnGdhIFjgy59-2Q==/base.apk (io.sentry.android.replay.util.ExecutorsKt$$ExternalSyntheticLambda0.run+12)
  #19  pc 0x0000000000482e2c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.Executors$RunnableAdapter.call+60)
  #20  pc 0x0000000000481ea4  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.FutureTask.run+164)
  #21  pc 0x000000000048aa00  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run+128)
  #22  pc 0x000000000048cd54  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+676)
  #23  pc 0x0000000000490cf8  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+56)
  #24  pc 0x00000000003214f0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.Thread.run+64)
  #25  pc 0x000000000032d194  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612)
  #26  pc 0x00000000002de270  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+216)
  #27  pc 0x00000000004bfcf4  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+932)
  #28  pc 0x00000000004bf940  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallbackWithUffdGc(void*)+8)
  #29  pc 0x00000000000a86e8  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+200)
  #30  pc 0x0000000000099a90  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
```

<img width="1392" height="816" alt="Image" src="https://github.com/user-attachments/assets/c98d2a60-3882-4d78-ba17-c72613b18780" />

Metadata

Metadata

Assignees

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions