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.

User Does Not Exist Error Even Though User Exists in User Pool

See original GitHub issue

Describe the bug The Auth.signIn method now returns a userNotFoundException even though the user exists in the cognito user pool.

I had an existing and fully functioning auth flow working through cognito for my react-native app. However, I, realized that I needed to create and use a new cognito user pool for my app, and delete the old user pool. I achieved this via the amplify-cli. All seemed well when I did a sign up test in the app. The user could create an account, receive a verification code in their email, and the cognito user pool responded appropriately. However, when that same user that was just created attempts to sign in, the Auth.signIn method throws a userNotFoundException error.

To Reproduce Assuming the app already as Auth added In the terminal run:

  1. amplify remove auth Confirm removal
  2. amplify push Confirm push
  3. amplify add auth Select default configuration with social providers and conduct a standard setup
  4. Rebuild the App
  5. Create a new user via the Auth.signUp method (in app, this is just the standard auth flow)
  6. Attempt to sign in with the just-created user.

Expected behavior The Auth.signIn method should return a successful sign in.

Code Snippet Error: error signing in... {code: "UserNotFoundException", name: "UserNotFoundException", message: "User does not exist."}

Context of Auth.signIn method:

import React, { Component, useState, useContext } from 'react'
import {AuthContext} from '../../navigation/Screens';
import {ToggleContext} from './Auth';
import { View, TouchableWithoutFeedback, StyleSheet } from 'react-native'
import { Text } from 'galio-framework';
import { Auth } from 'aws-amplify'
import argonTheme from '../../constants/argonTheme';
import Input from '../../components/Auth/Input'
import ActionButton from '../../components/Auth/ActionButton'
import SocialButton from '../../components/Auth/SocialButton';
import GoogleButton from '../../components/Auth/GoogleButton';


// Sign in screen
function SignIn() {
  // Assigns updateAuth function to a variable
  // Assigns toggleAuthType function to a variable
  const updateAuth = useContext(AuthContext);
  const toggleAuthType = useContext(ToggleContext);

  // Username and Password state management via useState hooks
  const [username, setUsername] = useState('');
  const [password, setPassword] = useState('');
  
  // Sign In function
  // Attempts to sign in with given username and password 
  // * Note that Auth.signIn returns a promise in the form of an object
  // Sets current view to the main app if the Auth.signIn promise resolves to a success
  // Logs error and alerts if the Auth.Sign promise resolves to a failure
  async function signIn() {
    try {
      await Auth.signIn(username, password)
      console.log('successfully signed in')
      updateAuth('MainNav')
    } catch (code) {
      console.log('error signing in...', code)
      alert(code.message)
    }
  }

  function showForgotPassword() {
    toggleAuthType('showForgotPassword')
  }

    return (
      <View>
        <Input
          onChangeText={(text) => {setUsername(text)}}
          type='username'
          placeholder='Username'
        />
        <Input
          onChangeText={(text) => {setPassword(text)}}
          type='password'
          placeholder='Password'
          secureTextEntry
        />
        <ActionButton
          title='Sign In'
          onPress={signIn}
          BGColor={argonTheme.COLORS.ACTIVE}
        />
        <View style={styles.buttonContainer}>
          <TouchableWithoutFeedback onPress={showForgotPassword}>
            <Text style={{fontSize: 16, fontFamily: 'OpenSans-regular'}}>Forget your password?</Text>
          </TouchableWithoutFeedback>
        </View>
        <View style={styles.buttonContainer}>
            <Text style={{fontSize: 16, fontFamily: 'OpenSans-regular'}}>Or</Text>
        </View>
        <View style={styles.socialCont}>
        <GoogleButton
          title="Sign in with Google"
          onPress={() => Auth.federatedSignIn({ provider: "Google" })}
        />
        <SocialButton
          title="Sign in with Facebook"
          onPress={() => Auth.federatedSignIn({ provider: "Facebook" })}
          BGColor={argonTheme.COLORS.FACEBOOK}
          iconName='facebook'
          iconColor='white'
          textColor={argonTheme.COLORS.WHITE}
        />
        <SocialButton
          title="Sign in with Apple"
          BGColor={argonTheme.COLORS.BLACK}
          iconName='apple'
          iconColor='white'
          textColor={argonTheme.COLORS.WHITE}
        />
        </View>
      </View>
    )
}

const styles = StyleSheet.create({
  buttonContainer: {
    paddingTop: '2%',
    justifyContent: 'center',
    flexDirection: 'row',
  },
  
  socialCont: {
    marginTop: '5%'
  },
})

export default SignIn

aws-exports.js

const awsmobile = {
    "aws_project_region": "us-east-2",
    "aws_cognito_identity_pool_id": "us-east-2:d15b3200-6cc2-4e28-9ef0-334cdfa3c389",
    "aws_cognito_region": "us-east-2",
    "aws_user_pools_id": "us-east-2_uZqiPEd19",
    "aws_user_pools_web_client_id": "1npgiokobk2d10ofoerablv93t",
    "oauth": {
        "domain": "nerdhub-auth-dev.auth.us-east-2.amazoncognito.com",
        "scope": [
            "phone",
            "email",
            "openid",
            "profile",
            "aws.cognito.signin.user.admin"
        ],
        "redirectSignIn": "http://localhost:3000/",
        "redirectSignOut": "http://localhost:3000/",
        "responseType": "code"
    },
    "federationTarget": "COGNITO_USER_POOLS"
};

parameters.json

{
    "identityPoolName": "nerdhub39718c9f_identitypool_39718c9f",
    "allowUnauthenticatedIdentities": false,
    "resourceNameTruncated": "nerdhu39718c9f",
    "userPoolName": "nerdhub39718c9f_userpool_39718c9f",
    "autoVerifiedAttributes": [
        "email"
    ],
    "mfaConfiguration": "OFF",
    "mfaTypes": [
        "SMS Text Message"
    ],
    "smsAuthenticationMessage": "Your authentication code is {####}",
    "smsVerificationMessage": "Your verification code is {####}",
    "emailVerificationSubject": "Your verification code",
    "emailVerificationMessage": "Your verification code is {####}",
    "defaultPasswordPolicy": false,
    "passwordPolicyMinLength": 8,
    "passwordPolicyCharacters": [],
    "requiredAttributes": [
        "email"
    ],
    "userpoolClientGenerateSecret": true,
    "userpoolClientRefreshTokenValidity": 30,
    "userpoolClientWriteAttributes": [
        "email"
    ],
    "userpoolClientReadAttributes": [
        "email"
    ],
    "userpoolClientLambdaRole": "nerdhu39718c9f_userpoolclient_lambda_role",
    "userpoolClientSetAttributes": false,
    "sharedId": "39718c9f",
    "resourceName": "nerdhub39718c9f",
    "authSelections": "identityPoolAndUserPool",
    "authRoleArn": {
        "Fn::GetAtt": [
            "AuthRole",
            "Arn"
        ]
    },
    "unauthRoleArn": {
        "Fn::GetAtt": [
            "UnauthRole",
            "Arn"
        ]
    },
    "useDefault": "defaultSocial",
    "hostedUI": true,
    "hostedUIDomainName": "nerdhub-auth",
    "authProvidersUserPool": [
        "Facebook",
        "Google"
    ],
    "hostedUIProviderMeta": "[{\"ProviderName\":\"Facebook\",\"authorize_scopes\":\"email,public_profile\",\"AttributeMapping\":{\"email\":\"email\",\"username\":\"id\"}},{\"ProviderName\":\"Google\",\"authorize_scopes\":\"openid email profile\",\"AttributeMapping\":{\"email\":\"email\",\"username\":\"sub\"}}]",
    "oAuthMetadata": "{\"AllowedOAuthFlows\":[\"code\"],\"AllowedOAuthScopes\":[\"phone\",\"email\",\"openid\",\"profile\",\"aws.cognito.signin.user.admin\"],\"CallbackURLs\":[\"http://localhost:3000/\"],\"LogoutURLs\":[\"http://localhost:3000/\"]}",
    "userPoolGroupList": [],
    "dependsOn": []
}
Environment System: OS: macOS 10.15.4 CPU: (8) x64 Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz Memory: 16.45 MB / 16.00 GB Shell: 5.7.1 - /bin/zsh Binaries: Node: 12.14.1 - /usr/local/bin/node Yarn: 1.22.4 - /usr/local/bin/yarn npm: 6.14.5 - /usr/local/bin/npm Browsers: Chrome: 84.0.4147.105 Safari: 13.1 npmPackages: @apollo/react-hooks: ^3.1.5 => 3.1.5 @aws-amplify/pubsub: ^2.1.9 => 2.1.9 @babel/core: ^7.9.0 => 7.9.0 @babel/runtime: ^7.9.2 => 7.9.2 @expo/vector-icons: ^10.0.6 => 10.0.6 @react-native-community/eslint-config: ^1.1.0 => 1.1.0 @react-native-community/google-signin: ^4.0.0 => 4.0.0 @react-native-community/masked-view: ^0.1.9 => 0.1.9 @react-native-community/netinfo: ^5.9.2 => 5.9.5 @react-navigation/bottom-tabs: ^5.2.7 => 5.2.7 @react-navigation/compat: ^5.1.9 => 5.1.9 @react-navigation/drawer: ^5.5.0 => 5.5.0 @react-navigation/material-top-tabs: ^5.2.2 => 5.2.8 @react-navigation/native: ^5.2.6 => 5.4.3 @react-navigation/stack: ^5.2.11 => 5.2.11 @unimodules/core: ^5.1.0 => 5.1.0 @unimodules/react-native-adapter: ^5.2.0 => 5.2.0 amazon-cognito-identity-js: ^4.3.1 => 4.3.3 apollo-boost: ^0.4.9 => 0.4.9 aws-amplify: ^2.3.0 => 2.3.0 aws-amplify-react-native: ^4.2.0 => 4.2.1 babel-jest: ^25.3.0 => 25.3.0 eslint: ^6.8.0 => 6.8.0 expo-asset: ^8.1.4 => 8.1.4 expo-constants: ^9.0.0 => 9.0.0 expo-file-system: ^8.1.0 => 8.1.0 expo-font: ^8.1.1 => 8.1.1 galio-framework: ^0.6.3 => 0.6.3 graphql: ^14.6.0 => 14.7.0 jest: ^25.3.0 => 25.3.0 metro-react-native-babel-preset: ^0.59.0 => 0.59.0 prop-types: ^15.7.2 => 15.7.2 react: ^16.11.0 => 16.13.1 react-native: 0.62.2 => 0.62.2 react-native-elements: ^1.2.7 => 1.2.7 react-native-gesture-handler: ^1.6.1 => 1.6.1 react-native-inappbrowser-reborn: ^3.4.0 => 3.4.0 react-native-material-dropdown: ^0.11.1 => 0.11.1 react-native-material-tabs: ^4.1.2 => 4.1.2 react-native-reanimated: ^1.8.0 => 1.8.0 react-native-safe-area-context: ^0.7.3 => 0.7.3 react-native-screens: ^2.5.0 => 2.5.0 react-native-snap-carousel: ^3.9.1 => 3.9.1 react-native-splash-screen: ^3.2.0 => 3.2.0 react-native-tab-view: ^2.14.0 => 2.14.2 react-native-vector-icons: ^6.6.0 => 6.6.0 react-native-view-more-text: ^2.1.0 => 2.1.0 react-test-renderer: 16.11.0 => 16.11.0 typescript: ^3.8.3 => 3.8.3 npmGlobalPackages: @aws-amplify/cli: 4.21.0 create-react-app: 3.4.0 expo-cli: 3.15.5 firebase-tools: 8.4.0 gatsby-cli: 2.12.17 gulp: 4.0.2 npm: 6.14.5 react-native-cli: 2.0.1

Smartphone (please complete the following information):

  • Device: iPhone 11
  • OS: IOS 13.6
  • Browser: safari

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:16 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
ashika01commented, Aug 4, 2020

@rpsutton By ping me I just meant @ me here. I think some how the front end and backend resource ain’t connecting. Let me move this issue to CLI team, they can guide you better.

0reactions
github-actions[bot]commented, May 25, 2021

This issue has been automatically locked since there hasn’t been any recent activity after it was closed. Please open a new issue for related bugs.

Looking for a help forum? We recommend joining the Amplify Community Discord server *-help channels for those types of questions.

Read more comments on GitHub >

github_iconTop Results From Across the Web

AWS Cognito: User exist in the User pool but Sign in gives ...
I am new to AWS Cognito. I have created a user in the user pool using aws cli by using the admin create...
Read more >
Managing error responses - Amazon Cognito
Amazon Cognito supports customizing error responses returned by user pools. Custom error responses are available for user creation and authentication, ...
Read more >
Use an existing Cognito User Pool and Identity Pool
The amplify import auth command will: automatically populate your Amplify Library configuration files (aws-exports.js, amplifyconfiguration.json) with your ...
Read more >
Cognito/Amplify - How to check if user exists? : r/aws - Reddit
We found this can be invoked even for a non-existent user, in which case, we want to surface the right message - 'User...
Read more >
User authentication with AWS Cognito: The good, the bad and ...
The first huge issue: Created user pools (kind of the database for the users) are unchangeable. You can't edit them. This affects stupid...
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