Cognitoユーザーのパスワードリセット実行時にInvalidParameterExceptionエラーが発生するのはなぜですか

Cognitoユーザーのパスワードリセット実行時にInvalidParameterExceptionエラーが発生するのはなぜですか

2025.10.15

困っていた内容

Cognitoのユーザーのパスワードリセット実行時にInvalidParameterExceptionエラーが発生するのはなぜですか。

どう対応すればいいの?

  • 未検証の属性がある場合
    メールアドレス及び、電話番号が未検証である場合、InvalidParameterExceptionエラーが発生します。未検証の属性を検証済みとした後に、パスワードリセットを実行してください。

  • 単一チャネルでMFA設定を実施している場合
    単一チャネル(メールアドレス、SMSどちらかのみ)かつ、MFA設定をそのチャネルに対して設定している場合、Cognitoの制約によりMFA利用しているチャネルでパスワードリセットを実行することはできません。そのためadmin-set-user-passwordコマンドなどにより、パスワードを強制的にリセットする必要があります。

やってみた

「未検証の属性がある場合」でのエラー発生を確認してみます。
前提条件として、Cognitoユーザープール及びアプリケーションクライアントは作成済みとなります。

  1. パスワードリセット用のユーザーを作成します。Eメールを利用して、検証済みとしない設定でユーザーを作成します。
    スクリーンショット 2025-10-05 15.44.36

  2. アプリケーションクライアントのログインページから、初回ログインを実行します。設定した各必須の属性を入力します。
    スクリーンショット 2025-10-05 16.14.22.png

  3. 設定後、「ユーザー」→作成したユーザーから「アクション」→「パスワードをリセット」を試みます。InvalidParameterExceptionエラーが発生します。
    スクリーンショット 2025-10-05 16.15.18.png

スクリーンショット 2025-10-05 16.15.27.png

  1. CloudTrailでAdminResetUserPasswordイベント確認すると、errorMessageにて検証済みでないメールアドレス・SMSを持つユーザーはパスワードリセットを実行できない、とのエラーを確認できます。なお、上記記載の「単一チャネルでMFA設定を実施している場合」についても同様のエラーが発生する可能性があるためご注意ください。
			
			    "errorCode": "InvalidParameterException",
    "errorMessage": "Cannot reset password for the user as there is no registered/verified email or phone_number",

		
  1. メールアドレスを検証済みに変更後は、正常にパスワードリセットを実行できました。
    スクリーンショット 2025-10-05 16.16.46.png

参考情報

https://dev.classmethod.jp/articles/amazon-cognito-mfa-password-reset-constraints/

https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/user-pool-settings-mfa.html#user-pool-settings-mfa-prerequisites

この記事をシェアする

FacebookHatena blogX

関連記事