Amplify Auth : Unable to add User to the Pool

Viewed 591

I am trying to use Amplify Auth to add users to Cognito User Pool. I wrote this simple code, but even it doesn't work:

try {
    Amplify.addPlugin(new AWSCognitoAuthPlugin());
} catch (AmplifyException e) {
    e.printStackTrace();
}

Amplify.Auth.signUp(
    "dragon",
    "Password123@",
    AuthSignUpOptions.builder()
        .userAttribute(AuthUserAttributeKey.email(), "myemailaddress@gmail.com")
        .build(),
    result -> Log.i("AuthQuickStart", "Result: " + result.toString()),
    error -> Log.e("AuthQuickStart", "Sign up failed", error)
);

It prints this error to logcat:

E/AuthQuickStart: Sign up failed
    AmplifyException {message=Sign up failed, cause=java.lang.NullPointerException: Attempt to invoke virtual method 'void com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool.signUp(java.lang.String, java.lang.String, com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserAttributes, java.util.Map, com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.SignUpHandler)' on a null object reference, recoverySuggestion=See attached exception for more details}
        at com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin$2.onError(AWSCognitoAuthPlugin.java:1)
        at com.amazonaws.mobile.client.internal.InternalCallback.call(InternalCallback.java:77)
        at com.amazonaws.mobile.client.internal.InternalCallback.access$000(InternalCallback.java:34)
        at com.amazonaws.mobile.client.internal.InternalCallback$1.run(InternalCallback.java:103)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool.signUp(java.lang.String, java.lang.String, com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserAttributes, java.util.Map, com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.SignUpHandler)' on a null object reference
        at com.amazonaws.mobile.client.AWSMobileClient$13.run(AWSMobileClient.java:1894)
        at com.amazonaws.mobile.client.internal.InternalCallback$1.run(InternalCallback.java:101)
        at java.lang.Thread.run(Thread.java:764) 
1 Answers

You must call Amplify.configure() exactly once. It should be called after adding plugins, and before executing any other Amplify command.

It's also true that the Amplify framework should probably return an error message that says that, instead of what it's doing right now. That's a bug with the framework's error reporting.

Related