amplitude / amplitude/Amplitude-Android
Fatal Exception: java.lang.InternalError
- Dominant language
- Java
- Stars
- 169
- Forks
- 87
- PR merge metrics
- No merged PRs in 30d
Description
In my application, I use Firebase Crashlytics, and it sent me a notification that hundreds of users are experiencing similar errors, which it has identified as 'crashes'.
## Expected Behavior
No crashes
## Current Behavior
Intermittent crashes on user devices reported by firebase crashlytics
## Possible Solution
add `catch (InternalError e)` at [AmplitudeClient.java:2383](https://github.com/amplitude/Amplitude-Android/blob/34c94580491b99a63df99e854db369de9217e167/src/main/java/com/amplitude/api/AmplitudeClient.java#L2383)
## Steps to Reproduce
All my information is just a stacktraces:
**Case#1**
```
Fatal Exception: java.lang.InternalError: Thread starting during runtime shutdown
at java.lang.Thread.nativeCreate(Thread.java)
at java.lang.Thread.start(Thread.java:733)
at okhttp3.internal.http2.Http2Connection.start(Http2Connection.kt:495)
at okhttp3.internal.http2.Http2Connection.start$default(Http2Connection.kt:486)
at okhttp3.internal.connection.RealConnection.startHttp2(RealConnection.kt:330)
at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:314)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:178)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:236)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:109)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:77)
at okhttp3.internal.connection.Transmitter.newExchange$okhttp(Transmitter.kt:162)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:35)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:82)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:84)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:71)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:184)
at okhttp3.RealCall.execute(RealCall.kt:66)
at com.amplitude.api.AmplitudeClient.makeEventUploadPostRequest(AmplitudeClient.java:2272)
at com.amplitude.api.AmplitudeClient$12.run(AmplitudeClient.java:2137)
at android.os.Handler.handleCallback(:2)
at android.os.Handler.dispatchMessage(:4)
at android.os.Looper.loop(:152)
at android.os.HandlerThread.run(:28)
```
**Case#2**
```
Fatal Exception: java.lang.InternalError: Thread starting during runtime shutdown
at java.lang.Thread.nativeCreate(Thread.java)
at java.lang.Thread.start(Thread.java:745)
at okio.AsyncTimeout$Companion.scheduleTimeout(AsyncTimeout.kt:274)
at okio.AsyncTimeout$Companion.access$scheduleTimeout(AsyncTimeout.kt:247)
at okio.AsyncTimeout.enter(AsyncTimeout.kt:56)
at okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame(Http2Stream.kt:539)
at okhttp3.internal.http2.Http2Stream$FramingSink.write(Http2Stream.kt:526)
at okio.ForwardingSink.write(ForwardingSink.kt:29)
at okhttp3.internal.connection.Exchange$RequestBodySink.write(Exchange.kt:222)
at okio.RealBufferedSink.close(RealBufferedSink.kt:237)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:60)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:37)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:82)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:84)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:71)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:184)
at okhttp3.RealCall.execute(RealCall.kt:66)
at com.amplitude.api.AmplitudeClient.makeEventUploadPostRequest(AmplitudeClient.java:2272)
at com.amplitude.api.AmplitudeClient$12.run(AmplitudeClient.java:2137)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.os.HandlerThread.run(HandlerThread.java:61)
```
## Environment
- SDK Version: com.amplitude:android-sdk:2.38.3
- Android versions: 7.0, 8.1.0, 9, 10
- Device: Lenovo Tab M10 HD (2nd Gen), Lenovo Tab M8, Redmi 5 Plus, Xiaomi Mi A2, Xiaomi MI PAD 4, Samsung Galaxy Tab A (2018, 10.5), Samsung Galaxy Tab A (8.0", 2019) and other (Motorola, Huawei, LGE)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.