react-native-app-auth: The operation couldn’t be completed. (org.openid.appauth.general error -3.)

Issue

I have not reproduced the issue on dev/qa environments. Everything that I know from end-user report, app runs webflow and fails immediately after the successful login on the server that

Error The operation couldn’t be completed. (org.openid.appauth.general error -3.) 
    node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:104:6 
    node_modules/react-native-app-auth/index.js:187:9 
    App/Login.tsx:76:42 
    node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:44 tryCatch
    node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:271:30 
    node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:44 tryCatch
    node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:135:28 invoke
    node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:145:19 
    node_modules/promise/setimmediate/core.js:37:14 tryCallOne
    node_modules/promise/setimmediate/core.js:123:25 
    node_modules/react-native/Libraries/Core/Timers/JSTimers.js:135:6 _callTimer
    node_modules/react-native/Libraries/Core/Timers/JSTimers.js:183:17 _callImmediatesPass
    node_modules/react-native/Libraries/Core/Timers/JSTimers.js:446:11 callImmediates
    [native code] callImmediates
    node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:396:11 value
    node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:144:11 
    node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:373:8 value
    node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:143:17 value
    [native code] value
    [native code] value

where App/Login.tsx:76:42 is

const loginResult = await authorize(cfg)

Looks like duplicate to https://github.com/FormidableLabs/react-native-app-auth/issues/388

Those errors started after RN upgrade to 0.62.1. Before that app used 0.59.x and no bugsnag reports are detected


Environment

  • Your Identity Provider: Custom InHouse OAuth Provider powered by Doorkeeper (https://github.com/doorkeeper-gem/doorkeeper)
  • Platform that you’re experiencing the issue on: iOS (I have not tried on Android)
  • Are you using Expo?: No
"react-native": "0.62.1",
"react-native-app-auth": "5.1.2",

About this issue

  • Original URL
  • State: open
  • Created 4 years ago
  • Reactions: 3
  • Comments: 15 (1 by maintainers)

Most upvoted comments

Creating an delay before calling authorize would solve it for me…

Same issue with react native 0.71.6 and react-native-app-auth 6.4.3.

I can confirm this error is thrown when:

  • the user cancels the flow. In this case, I would expect another error, clearly indicating that it was the user who cancelled, as is the case on Android.
  • when the app is opened but not focused/active, it is activated from a deep link (e.g. a reset password link clicked in an email), and authorize is called immediately.

For the second case, I’m using this workaround:

import { AppState } from 'react-native';
while (AppState.currentState !== 'active') {
  await new Promise((resolve) => setTimeout(resolve, 100));
}
const result = await authorize(config);

Maybe Error Domain=org.openid.appauth.general Code=-3 means OIDErrorCodeUserCanceledAuthorizationFlow and React Native App Auth doesn’t handle user cancellation…

I’m a novice in React Native and iOS, I’m just saying…