square / in-app-payments-react-native-plugin

Apache License 2.0
118 stars 50 forks source link

Android crashes during service incident #242

Open anton-chikunov opened 3 months ago

anton-chikunov commented 3 months ago

Describe the issue

Between 12 June 2024 and 16 June 2024 during service incident, Android crashes at Card Entry screen after press 'Save' button. iOS shows 'unexpected error' alert. Exception:

Your app just crashed. See the error below.
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
  com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:502)
  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)

Caused by java.lang.reflect.InvocationTargetException
  java.lang.reflect.Method.invoke(Native Method)
  com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)

Caused by com.squareup.moshi.JsonEncodingException: Use JsonReader.setLenient(true) to accept malformed JSON at path $
  com.squareup.moshi.JsonReader.syntaxError(JsonReader.java:243)
  com.squareup.moshi.JsonUtf8Reader.checkLenient(JsonUtf8Reader.java:1152)
  com.squareup.moshi.JsonUtf8Reader.doPeek(JsonUtf8Reader.java:384)
  com.squareup.moshi.JsonUtf8Reader.peek(JsonUtf8Reader.java:206)
  com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:38)
  com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:58)
  sqip.internal.nonce.RealCreateCardNonceRequestHandler.onResponse(RealCreateCardNonceRequestHandler.kt:132)
  sqip.internal.nonce.RealCreateCardNonceRequestHandler$sendRequest$1.onResponse(RealCreateCardNonceRequestHandler.kt:56)
  retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.lambda$onResponse$0$retrofit2-DefaultCallAdapterFactory$ExecutorCallbackCall$1(DefaultCallAdapterFactory.java:82)
  retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1$$ExternalSyntheticLambda0.run(Unknown Source:6)
  android.os.Handler.handleCallback(Handler.java:883)
  android.os.Handler.dispatchMessage(Handler.java:100)
  android.os.Looper.loop(Looper.java:214)
  android.app.ActivityThread.main(ActivityThread.java:7397)
  java.lang.reflect.Method.invoke(Native Method)
  com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)

To Reproduce

Today (17 June 2024) it's impossible to reproduce as services are working fine.

Expected behavior

Android should not crash if services are not working on at maintenance.

Environment (please complete the following information):

Screenshots

No Screenshots

Additional context

I think the reason of crash is html which can't be parsed by moshi in native part of library. I didn't have time to check traffic between server and app to catch the real response of Square in app payments service