Skip to content

Flutter app crashes on Android (0.14.0) - Too many open files #522

@denfrancis

Description

@denfrancis

Description

My flutter app crashes on Android devices after remaining idle for some time. This happens when I use Factory.rive riveFactor instead of Factory.flutter. I use the feathering features on Rive and it is disabled when I use Factory.flutter.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Run the app on Android
  2. Load a rive file that has feathering enabled
  3. Wait a few seconds
  4. App will freeze and will be unusuable

Logs

E/flutter (29988): [ERROR:flutter/impeller/renderer/backend/vu
  lkan/swapchain/khr/khr_swapchain_impl_vk.cc(483)] Break on 
  'ImpellerValidationBreak' to inspect point of failure: Could not present 
  queue: ErrorInitializationFailed
  5
  E/RiveNative(29988): (12291) EGL_BAD_ALLOC - 
  ../../../../platform/android/rive_native_android.cpp:292
  E/ProcessState(29988): readDriverFeatureFile: cannot open 
  /dev/binderfs/features/extended_error: Too many open files
  E/GraphicBufferAllocator(29988): Failed to allocate (273 x 105) layerCount
   1 format 1 usage 40000000000300: -129
  E/BufferQueueProducer(29988): 
  [ImageReader-273x105f22m5-29988-36](id:752400000026,api:1,p:29988,c:29988)
   dequeueBuffer: createGraphicBuffer failed
  E/GraphicBufferAllocator(29988): Failed to allocate (273 x 105) layerCount
   1 format 1 usage 40000000000300: -129
  E/BufferQueueProducer(29988): 
  [ImageReader-273x105f22m5-29988-36](id:752400000026,api:1,p:29988,c:29988)
   dequeueBuffer: createGraphicBuffer failed
  E/RiveNative(29988): (12301) EGL_BAD_SURFACE - 
  ../../../../platform/android/rive_native_android.cpp:292
  5
  E/RiveNative(29988): (12291) EGL_BAD_ALLOC - 
  ../../../../platform/android/rive_native_android.cpp:292
  E/flutter (29988): [ERROR:flutter/impeller/renderer/backend/vulkan/swapcha
  in/khr/khr_swapchain_impl_vk.cc(208)] Break on 'ImpellerValidationBreak' 
  to inspect point of failure: Could not create swapchain: 
  ErrorNativeWindowInUseKHR
  E/Surface (29988): freeAllBuffers: 1 buffers were freed while being 
  dequeued!
  E/flutter (29988): [ERROR:flutter/impeller/renderer/backend/vulkan/swapcha
  in/khr/khr_swapchain_vk.cc(73)] Break on 'ImpellerValidationBreak' to 
  inspect point of failure: Could not update swapchain.
  2
  E/flutter (29988): 
  [ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(95)] No surface 
  available.

Expected behavior

  • It should not be crashing. The exact file and code works fine on iOS

Device & Versions (please complete the following information)

  • Device: Google Pixel 9a
  • OS: Android 16
  • Flutter Version:
Flutter 3.29.3 • channel [user-branch] • unknown source
Framework • revision ea121f8859 (5 months ago) • 2025-04-11 19:10:07 +0000
Engine • revision cf56914b32
Tools • Dart 3.7.2 • DevTools 2.42.3
  • Rive SDK version: rive: ^0.14.0-dev.6

Additional context

This only happens on Android. It works fine on iOS.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions