Android logcat spam: TransactionCallbackInvoker writeReleaseFence failed. error 32 (Broken pipe) every frame in SurfaceView
20:06 18 Nov 2025

I get this log continuously (every render frame):

E/TransactionCallbackInvoker: [SurfaceView(...)(BLAST)] writeReleaseFence failed. error 32 (Broken pipe)

It comes from the system (SurfaceFlinger), not my app (build with Delphi 13). A brand-new blank app that only shows a SurfaceView also produces it. Rendering works fine.

Questions:

  • What does writeReleaseFence mean in this context?
  • Why would SurfaceFlinger repeatedly hit EPIPE (broken pipe) for a SurfaceView?
  • Is this just harmless log noise, or does it indicate a real SurfaceView / buffer queue issue?

Not looking to hide the log — just trying to understand what causes it.

android delphi graphics surfaceview surfaceflinger