Skip to content

[Android][Vulkan] App crashes on Adreno GPUs when session replay is enabled #253

@null-io

Description

@null-io

Description

Description

After enabling PostHog session replay (frame capture) in our Flutter app, we are seeing consistent crashes on Android devices with Adreno GPUs.

Stacktraces indicate the crash occurs in the Vulkan driver library (vulkan.adreno.so) during framebuffer operations. This issue did not occur before enabling session replay.


Steps to Reproduce

  1. Run the Flutter app on an Android device with an Adreno GPU.
  2. Enable PostHog session replay (even at 1 FPS).
  3. Interact with the app (scroll lists, view images, minor animations).
  4. Observe the app crashing; the backtrace points to vulkan.adreno.so.

Stacktrace

* * * * * * * * * * * * * * * *
pid: 0, tid: 29347 >>> com.falaq.app <<<


backtrace:
  #00  pc 0x000000000017a418  /vendor/lib64/hw/vulkan.adreno.so (!!!0000!a120ef209d5178a4423deb015222c1!8699000cd8!+120)
  #01  pc 0x00000000001790a4  /vendor/lib64/hw/vulkan.adreno.so (!!!0000!097ece140a689b3ba2b5661cb74dce!8699000cd8!+252)
  #02  pc 0x0000000000178cdc  /vendor/lib64/hw/vulkan.adreno.so (!!!0000!29ace6fe96216dcfbbe73828801572!8699000cd8!+28)
  #03  pc 0x00000000000d5194  /vendor/lib64/hw/vulkan.adreno.so (!!!0000!d181a8f7c47818ec36ff475c08ff06!8699000cd8!+180)
  #04  pc 0x00000000000a3020  /vendor/lib64/hw/vulkan.adreno.so (qglinternal::vkDestroyFramebuffer(VkDevice_T*, VkFramebuffer_T*, VkAllocationCallbacks const*)+64)
  #05  pc 0x000000000048183c  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #06  pc 0x00000000007f91f8  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #07  pc 0x000000000048183c  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #08  pc 0x00000000007f9398  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #09  pc 0x000000000048183c  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #10  pc 0x00000000007a007c  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #11  pc 0x000000000083b630  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #12  pc 0x000000000083b6bc  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #13  pc 0x00000000004b7fa8  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #14  pc 0x00000000004b7f44  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #15  pc 0x00000000004b7e40  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #16  pc 0x00000000004bbd68  /data/app/~~xrO_PCX5x7pvnJa4A6EVfg==/com.falaq.app-2I8bmnJTDJLu0zhP9cfh7A==/lib/arm64/libflutter.so (BuildId: 19c789d73f23041f9209dc31b7aa2e5f30f7fdff)
  #17  pc 0x00000000000177e4  /system/lib64/libutils.so (android::Looper::pollInner(int)+1060)
  #18  pc 0x0000000000017360  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112)
  #19  pc 0x00000000001a1ad4  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
  #20  pc 0x0000000001021b40  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+112)
  #21  pc 0x0000000000a2a89c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.MessageQueue.next+364)
  #22  pc 0x0000000000a269c0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+96)
  #23  pc 0x0000000000a268a8  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+1032)
  #24  pc 0x00000000007b8da0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+3824)
  #25  pc 0x00000000002ce060  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)

Affected Devices (observed crashes)

  • Realme 12 Pro
  • Honor Magic 5 Lite
  • Realme GT Master Edition
  • Honor X8b
  • Poco X3 Pro

All devices have Adreno GPUs, maybe more devices but this is what i got after 2 days of the update release.


Observed Behavior

  • The app crashes when session replay is enabled on Vulkan/Impeller rendering backend.
  • Crash appears to originate inside vulkan.adreno.so.
  • Users experience sudden app termination.

Expected Behavior

  • The app should not crash when session replay is enabled.

Environment

  • Flutter version: 3.38.4
  • PostHog Flutter plugin: 5.11.1
  • Impeller / Vulkan enabled (default on recent Flutter versions)

Notes

  • This issue started after enabling session replay.
  • Stacktrace suggests the crash occurs during framebuffer operations in the Vulkan driver.
  • We do not currently have information on whether disabling Impeller or using OpenGL prevents the crash.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions