stripe / stripe-terminal-android

Stripe Terminal Android SDK
https://stripe.dev/stripe-terminal-android/
Other
94 stars 46 forks source link

Failed to decrypt an offline entity. #459

Closed batuhanseckinthisway closed 2 months ago

batuhanseckinthisway commented 6 months ago

Summary

While everything is working fine, sometimes my app crashes. Even though I have been researching this problem for a long time, I cannot find what causes the problem.

I checked out breadcrumbs. Before the problem, the last request was made to take terminal-token. The result of the request appears to be 200.

Stack Trace https://softt.sentry.io/share/issue/ab25431bf7b64b9581fc7259b3d16630/

Code to reproduce

I am developing my application with flutter. If I still need to share, please let me know and I will try to share it in detail.

Android version

11

Impacted devices (Android devices or readers)

I don't know if the problem only occurs with a certain model. We only use model of m2. I leave an example serial number related to the problem. STRM26214084091

SDK version

3.4.0

Other information

All of the information below is from the moment the error was caught.

Permissions ACCESS_COARSE_LOCATION: granted, ACCESS_FINE_LOCATION: granted, ACCESS_NETWORK_STATE: granted, ACCESS_WIFI_STATE: granted, BLUETOOTH: granted, BLUETOOTH_ADMIN: granted, BLUETOOTH_CONNECT: not_granted, BLUETOOTH_SCAN: not_granted, DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: granted, INTERNET: granted

Device Brand: rockchip Family: rk3568_r os: Android 11 Battery Level: 50% Boot Time: 2024-05-05T00:00:52.225Z(3 minutes before this event) Charging: true Free Memory: 517.2 MiB Free Storage: 9.5 GiB Low Memory: false Manufacturer: rockchip Memory Size: 1.9 GiB Model: rk3568_r (RQ3A.210705.001) Model Id: RQ3A.210705.001 Online: true Orientation: landscape Screen Density: 1 Screen DPI: 160 Screen Height Pixels: 1024 Screen Resolution: 1920x1024 Screen Width Pixels: 1920 Simulator: false Storage Size: 10.7 GiB os.rooted: no device.class: low

Network download_bandwidth: 26812, network_type: wifi, signal_strength: -78, upload_bandwidth: 26812, vpn_active: false

batuhanseckinub commented 6 months ago

Can anyone please help us looking into this issue? @gliu-stripe @rv-stripe

dver-stripe commented 6 months ago

Hey @batuhanseckinnn, apologies for the delay here. In this case, I believe the stack trace provided may not be the root cause of the crashes you're seeing.

Some context: this particular exception indicates a problem with some of the decryption operations used to allow the Terminal SDK to collect payments offline. This usually indicates the Android device your app is running on doesn't support the cryptographic operations required for offline mode.

Even if your app is not currently using offline mode (which I think is the case for you), the SDK performs these operations in the background. However, the SDK should handle the faiures gracefully; they won't interfere with your ability to collect payments online.

Can you share more details about when you observe these crashes? If this error was the root cause, I would expect your app to crash every time you attempt to connect to a reader. However, based on our logs and your message that

While everything is working fine, sometimes my app crashes.

I believe you're seeing these crashes intermittently, sometimes after you've already begun to take payments. Is that correct?

Smail-cai commented 5 months ago

Hello, I have the same problem now, can you tell me how you finally solved this problem

dver-stripe commented 4 months ago

We've identified the cause of the issue and will be releasing a fix in SDK 3.8.0. See https://github.com/stripe/stripe-terminal-android/issues/474 for more details. Thanks for reporting!