question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Crash ThreeDSecureClient

See original GitHub issue

General information

  • SDK/Library version: 4.15.0

  • Environment: Sandbox

  • Android Version and Device: Android 13

  • Compile and Target SDK version: 33

  • Braintree dependencies:

com.braintreepayments.api:card:4.15.0
com.braintreepayments.api:three-d-secure:4.15.0

Issue description

After calling method threeDSecureClient.performVerification it will crash. Stacktrace of the crash is below.

java.lang.SecurityException: Settings key: <data_roaming> is only readable to apps with targetSdkVersion lower than or equal to: 32
        at android.provider.Settings$NameValueCache.getStringForUser(Settings.java:3081)
        at android.provider.Settings$Global.getStringForUser(Settings.java:15854)
        at android.provider.Settings$Global.getString(Settings.java:15837)
        at com.cardinalcommerce.a.setLineHeight.<init>(:166)
        at com.cardinalcommerce.a.setHint.<init>(:23)
        at com.cardinalcommerce.a.setLineSpacing.Cardinal(:52)
        at com.cardinalcommerce.cardinalmobilesdk.Cardinal.configure(:5039)
        at com.braintreepayments.api.CardinalClient.configurationCardinal(CardinalClient.java:62)
        at com.braintreepayments.api.CardinalClient.initialize(CardinalClient.java:21)
        at com.braintreepayments.api.ThreeDSecureClient$1.onResult(ThreeDSecureClient.java:171)
        at com.braintreepayments.api.ConfigurationLoader.loadConfiguration(ConfigurationLoader.java:41)
        at com.braintreepayments.api.BraintreeClient$1.onAuthorizationResult(BraintreeClient.java:165)
        at com.braintreepayments.api.AuthorizationLoader.loadAuthorization(AuthorizationLoader.java:20)
        at com.braintreepayments.api.BraintreeClient.getAuthorization(BraintreeClient.java:174)
        at com.braintreepayments.api.BraintreeClient.getConfiguration(BraintreeClient.java:161)
        at com.braintreepayments.api.ThreeDSecureClient.performVerification(ThreeDSecureClient.java:133)

Issue Analytics

  • State:closed
  • Created a year ago
  • Reactions:2
  • Comments:12 (6 by maintainers)

github_iconTop GitHub Comments

3reactions
sshropshirecommented, Oct 11, 2022

Hi all @josephyanks @bm185178 @joeboyscout04 the only update we’ve received is that a new release is coming soon. I agree this should have been caught much sooner. On the other hand, with API 32 still technically considered to be Android 12 this feels a lot like a hidden breaking change from Google, which can also happen from time to time.

Also not making any excuses here, we’ll work to integrate the fixed version as soon as it becomes available. We didn’t provide explicit support for Android 12L with our SDK because we didn’t see it as a huge ask from the community.

I want to double down and say thanks to y’all for being both patient and vocal, this helps us to escalate the issue with Cardinal. I’m hoping we’ll receive the update sometime soon in the coming weeks.

3reactions
josephyankscommented, Oct 4, 2022

@sshropshire - is there any update to this? We are having the same issue:

Settings key: <data_roaming> is only readable to apps with targetSdkVersion lower than or equal to: 32

It’s concerning how many issues we’ve bumped into regarding the Cardinal SDK and lack of support and proper testing for newer android versions. #594 seemingly is the same flavor of issue.

Read more comments on GitHub >

github_iconTop Results From Across the Web

3D Secure 2 crash · Issue #482 · braintree/braintree_ios · GitHub
I'm implementing 3D Secure v2 with custom UI by migrating from 3D Secure v1 and have ... Ive also tested in DropinUI and...
Read more >
Card authentication and 3D Secure | Stripe Documentation
For extra fraud protection, 3D Secure (3DS) requires customers to complete an additional verification step with the card issuer when paying.
Read more >
3D Secure 2 SDK | Global Payments Developer Portal
getThreeDSServerTransID(); // // af65c369-59b9-4f8d-b2f6-7d7d5f5c69d5 // TODO: notify client-side that the Method URL step is complete } catch(Exception e) ...
Read more >
ThreeDSecure - Documentation - Braintree Open Source
This class represents a ThreeDSecure component produced by braintree.threeDSecure.create. Instances of this class have a method for launching a 3D Secure ...
Read more >
Stripe payment intent remains incomplete with 3D Secure
setupIntent?.payment_method);. Then I retrieve the payment method and attach it to the customer and I finally create the subscription as shown ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found