createThumbnail function makes a crash about the remote video url in only android platform
The error message is
I dgc_arg: 8192KB,32MB,0.5 2025-09-03 17:08:35.931 23406-27736 MediaMetad...trieverJNI org.neurobodygym E getFrameAtTime: videoFrame is a NULL pointer 2025-09-03 17:08:35.932 23406-26910 System.err org.neurobodygym W java.net.SocketException: Socket closed 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at java.net.SocketInputStream.socketRead0(Native Method) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at java.net.SocketInputStream.socketRead(SocketInputStream.java:118) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at java.net.SocketInputStream.read(SocketInputStream.java:173) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at java.net.SocketInputStream.read(SocketInputStream.java:143) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:983) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:947) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:862) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:835) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.okhttp.okio.Okio$2.read(Okio.java:138) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:213) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.okhttp.okio.RealBufferedSource.read(RealBufferedSource.java:51) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:395) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:372) 2025-09-03 17:08:35.933 23406-26910 System.err org.neurobodygym W at java.io.BufferedInputStream.read1(BufferedInputStream.java:277) 2025-09-03 17:08:35.934 23406-26910 System.err org.neurobodygym W at java.io.BufferedInputStream.read(BufferedInputStream.java:338) 2025-09-03 17:08:35.934 23406-26910 System.err org.neurobodygym W at android.media.MediaHTTPConnection.readAt(MediaHTTPConnection.java:432) 2025-09-03 17:08:35.934 23406-26910 System.err org.neurobodygym W at android.media.MediaHTTPConnection.native_readAt(Native Method) 2025-09-03 17:08:35.934 23406-26910 System.err org.neurobodygym W at android.media.MediaHTTPConnection.readAt(MediaHTTPConnection.java:418) 2025-09-03 17:08:35.934 23406-26910 System.err org.neurobodygym W at android.media.IMediaHTTPConnection$Stub.onTransact(IMediaHTTPConnection.java:146) 2025-09-03 17:08:35.934 23406-26910 System.err org.neurobodygym W at android.os.Binder.execTransactInternal(Binder.java:1566) 2025-09-03 17:08:35.934 23406-26910 System.err org.neurobodygym W at android.os.Binder.execTransact(Binder.java:1505) 2025-09-03 17:08:35.934 23406-26910 MediaHTTPConnection org.neurobodygym W IOException readAt 213524 / 32768 => -1 2025-09-03 17:08:35.936 23406-27736 AndroidRuntime org.neurobodygym E FATAL EXCEPTION: pool-13-thread-1 Process: org.neurobodygym, PID: 23406 java.lang.IllegalStateException: File doesn't exist or not supported at com.reactlibrary.createthumbnail.CreateThumbnailModule.getBitmapAtTime(CreateThumbnailModule.java:200) at com.reactlibrary.createthumbnail.CreateThumbnailModule.processData(CreateThumbnailModule.java:100) at com.reactlibrary.createthumbnail.CreateThumbnailModule.lambda$create$2(CreateThumbnailModule.java:57) at com.reactlibrary.createthumbnail.CreateThumbnailModule.$r8$lambda$ImvhqcRFMM_6M9lQYF1nnbLEFyU(Unknown Source:0) at com.reactlibrary.createthumbnail.CreateThumbnailModule$$ExternalSyntheticLambda2.run(Unknown Source:6)
+1
+1
Any workarounds ?
+1
+1
+1
this is the fix . In node_modules/.../CreateThumbnailModule.java replace create() function with this public void create(ReadableMap options, Promise promise) { executor.execute(() -> { try { ReadableMap data = processData(options); handler.post(() -> { promise.resolve(data); }); } catch (IOException | IllegalStateException e) { handler.post(() -> { promise.reject("CreateThumbnail_ERROR", e); }); } }); }
The only change is adding "| IllegalStateException" in order to catch the error and avoid the app crash. Then npx patch-package react-native-create-thumbnail and you are good to go.
+1
any updates?
public void create(ReadableMap options, Promise promise) { executor.execute(() -> { try { ReadableMap data = processData(options); handler.post(() -> { promise.resolve(data); }); } catch (IOException | IllegalStateException e) { handler.post(() -> { promise.reject("CreateThumbnail_ERROR", e); }); } }); }
The changes are already in the latest version, but the crash happened again anyway