stripe / stripe-terminal-android

Stripe Terminal Android SDK
https://stripe-terminal-android-nine.vercel.app
Other
81 stars 43 forks source link

OnErrorNotImplementedException: Exception not handled #409

Closed Sbf closed 1 day ago

Sbf commented 7 months ago

Summary

I have received this crash from some of the devices out in the field. I haven't been able to reproduce. Is this the missing onError handler in the subscribe() method in the SDK as the crash log says?

Crash log

Fatal Exception: io.reactivex.rxjava3.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.NullPointerException: Attempt to invoke virtual method 'void android.bluetooth.BluetoothGatt.close()' on a null object reference
       at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:718)
       at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:715)
       at io.reactivex.rxjava3.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)
       at io.reactivex.rxjava3.internal.observers.LambdaObserver.onNext(LambdaObserver.java:67)
       at io.reactivex.rxjava3.subjects.PublishSubject$PublishDisposable.onNext(PublishSubject.java:310)
       at io.reactivex.rxjava3.subjects.PublishSubject.onNext(PublishSubject.java:226)
       at io.reactivex.rxjava3.subjects.SerializedSubject.onNext(SerializedSubject.java:104)
       at com.stripe.core.hardware.reactive.status.ReactiveReaderStatusListener.handleReaderDisconnect(ReactiveReaderStatusListener.kt:110)
       at com.stripe.core.bbpos.hardware.BbposControllerListener.onError(BbposControllerListener.kt:97)
       at com.stripe.core.bbpos.hardware.BbposPaymentCollectionListener.onError(BbposPaymentCollectionListener.kt:474)
       at com.stripe.core.bbpos.hardware.DeviceListenerRegistryImpl$onError$1.invoke(DeviceListenerRegistryImpl.kt:174)
       at com.stripe.core.bbpos.hardware.DeviceListenerRegistryImpl$onError$1.invoke(DeviceListenerRegistryImpl.kt:174)
       at com.stripe.core.bbpos.hardware.DeviceListenerRegistryImpl.notifyAll(DeviceListenerRegistryImpl.kt:50)
       at com.stripe.core.bbpos.hardware.DeviceListenerRegistryImpl.onError(DeviceListenerRegistryImpl.kt:174)
       at com.stripe.core.bbpos.BbposDeviceListenerWrapperImpl.onError(BbposDeviceListenerWrapperImpl.kt:210)
       at com.stripe.bbpos.bbdevice.BBDeviceController.aaa000(SourceFile:927)
       at com.stripe.bbpos.bbdevice.BBDeviceController.$r8$lambda$76eOkM9SKk39XLcSmxwXhiuU8d8()
       at com.stripe.bbpos.bbdevice.BBDeviceController$$ExternalSyntheticLambda92.run(:8)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:246)
       at android.app.ActivityThread.main(ActivityThread.java:8577)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

Android version

Android 11, 12

Impacted devices (Android devices or readers)

Galaxy Tab A7

SDK version

2.17.1

chr-stripe commented 6 months ago

Hi @Sbf, have you seen this occur out in the field more recently still? If you have any reader serial numbers to share that this has been happening on, we can investigate further.

billfinn-stripe commented 3 months ago

Hi @Sbf -- can you provide any reader serial numbers that have experienced this error, so we can look closer?

Sbf commented 3 months ago

Hi @Sbf -- can you provide any reader serial numbers that have experienced this error, so we can look closer?

@billfinn-stripe Sorry, I know it's still happening, but I left the company, and can't provide any info.

billfinn-stripe commented 3 months ago

I see -- thanks. Given the exception is unhandled, I don't think we'd find any trace of it in our logs. We can look into adding some more observability into this type of failure, so we can more easily diagnose.

I'll leave this issue open for now.

sjl-stripe commented 1 day ago

The original issue creator is no longer working for their company, and they haven't responded with serial numbers of readers with this error, so I'm closing this issue.