FusionAuth
    • Home
    • Categories
    • Recent
    • Popular
    • Pricing
    • Contact us
    • Docs
    • Login

    Error after updating the password

    Scheduled Pinned Locked Moved
    Q&A
    5
    21
    61.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • joshuaJ
      joshua @maciej.wisniowski
      last edited by

      @maciej-wisniowski,

      Thanks for the reminder - this is on my list to review this week and log a bug report if needed.

      Thanks
      Josh

      joshuaJ 1 Reply Last reply Reply Quote 0
      • joshuaJ
        joshua @joshua
        last edited by

        @maciej-wisniowski

        This was not immediately reproducible on my machine. I am going to try and few more things and will let you know.

        Thanks,
        Josh

        D 1 Reply Last reply Reply Quote 0
        • D
          developers @joshua
          last edited by

          @joshua Unfortunately, I have similar issue while updating the password through Self Service Portal. It displays 500 Internal Server Error only if new password is not as per application specific password validation rules/constraints. It works fine if updated as per validation rules. As per correct flow , it should display field errors for validations instead redirecting to 500 Internal Server Error.

          Internal Server Error.png

          Password update SS portal.png

          For reference, logs are
          Logs.png

          M 1 Reply Last reply Reply Quote 0
          • M
            maciej.wisniowski Power User @developers
            last edited by

            @developers in your case the error message is pretty self-explanatory. The problem is just a lack of [[singleCase]user.password] message in your theme. Just add this message to your theme and it should work 🙂

            D 1 Reply Last reply Reply Quote 0
            • D
              developers @maciej.wisniowski
              last edited by

              @maciej-wisniowski thanks for replying. I checked and seems [singleCase]user.password already there in my custom theme.theme-message.png

              joshuaJ 1 Reply Last reply Reply Quote 0
              • joshuaJ
                joshua @developers
                last edited by

                @developers Is this still an open issue for you?

                Thanks,
                Josh

                M 1 Reply Last reply Reply Quote 0
                • M
                  maciej.wisniowski Power User @joshua
                  last edited by

                  @joshua yes, I still have this issue on a few instances of FA while trying to change password for the user that is not registered in the specific application. If you're not able to reproduce this I can try to create a kickstart script to recreate the problem

                  joshuaJ 1 Reply Last reply Reply Quote 0
                  • joshuaJ
                    joshua @maciej.wisniowski
                    last edited by joshua

                    @maciej-wisniowski,

                    Yes, if you had this that might be helpful. I tried again, and still worked for me.

                    Also, you can log a bug report if you feel this is appropriate

                    • https://github.com/FusionAuth/fusionauth-issues/issues/new/choose

                    Thanks,
                    Josh

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      maciej.wisniowski Power User @joshua
                      last edited by maciej.wisniowski

                      @joshua I've tried with the FA 1.32.1 and I think I've found the source of the problem.
                      Turns out I had my Forgot Password Email template a bit old (AFAIR based on the template from 1.27.2).

                      Because of this, the URL to reset the password (in the email template) was generated like:

                      https://#{FA_DOMAIN}/password/change/${changePasswordId}?tenantId=${user.tenantId}
                      

                      In the newer versions of FA it was changed to:

                      [#assign url = "https://#{FA_DOMAIN}/password/change/${changePasswordId}?client_id=${(application.oauthConfiguration.clientId)!''}&tenantId=${user.tenantId}" /]
                      [#list state!{} as key, value][#if key != "tenantId" && key != "client_id" && value??][#assign url = url + "&" + key?url + "=" + value?url/][/#if][/#list]
                      ${url}
                      

                      The point is that with the new version we have extra parameters in the URL like client_id, redirect_uri and a few others. Everything works properly with the new syntax. If these new parameters are missing (I suppose the main issue is lack of the client_id) FA triggers error 500 after password reset (for the users that are not registered in the application that generated the password reset e-mail).

                      The most recent version of FA triggers a more detailed error message in the log than the previous one and this helped me a bit to track the problem:

                      2022-01-11 4:19:10.373 PM ERROR io.fusionauth.app.primeframework.error.ExceptionExceptionHandler - An unhandled exception was thrown
                      java.lang.NullPointerException: Cannot read field "oauthConfiguration" because "this.application" is null
                         at io.fusionauth.app.action.oauth2.BaseOAuthAction.handleInteractiveLoginResponse(BaseOAuthAction.java:548)
                         at io.fusionauth.app.action.oauth2.BaseOAuthAction.callLogin(BaseOAuthAction.java:447)
                         at io.fusionauth.app.action.password.ChangeAction.post(ChangeAction.java:121)
                         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
                         at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                         at java.base/java.lang.reflect.Method.invoke(Method.java:568)
                         at org.primeframework.mvc.util.ReflectionUtils.invoke(ReflectionUtils.java:414)
                         at org.primeframework.mvc.action.DefaultActionInvocationWorkflow.execute(DefaultActionInvocationWorkflow.java:79)
                         at org.primeframework.mvc.action.DefaultActionInvocationWorkflow.perform(DefaultActionInvocationWorkflow.java:62)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.validation.DefaultValidationWorkflow.perform(DefaultValidationWorkflow.java:47)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.security.DefaultSecurityWorkflow.perform(DefaultSecurityWorkflow.java:60)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.parameter.DefaultPostParameterWorkflow.perform(DefaultPostParameterWorkflow.java:50)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.content.DefaultContentWorkflow.perform(DefaultContentWorkflow.java:52)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.parameter.DefaultParameterWorkflow.perform(DefaultParameterWorkflow.java:57)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.parameter.DefaultURIParameterWorkflow.perform(DefaultURIParameterWorkflow.java:102)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.scope.DefaultScopeRetrievalWorkflow.perform(DefaultScopeRetrievalWorkflow.java:58)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.message.DefaultMessageWorkflow.perform(DefaultMessageWorkflow.java:44)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.action.DefaultActionMappingWorkflow.perform(DefaultActionMappingWorkflow.java:126)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.workflow.StaticResourceWorkflow.perform(StaticResourceWorkflow.java:97)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.parameter.RequestBodyWorkflow.perform(RequestBodyWorkflow.java:91)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at org.primeframework.mvc.security.DefaultSavedRequestWorkflow.perform(DefaultSavedRequestWorkflow.java:64)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at io.fusionauth.app.primeframework.CORSRequestWorkflow.perform(CORSRequestWorkflow.java:51)
                         at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:51)
                         at io.fusionauth.app.primeframework.FusionAuthMVCWorkflow.perform(FusionAuthMVCWorkflow.java:86)
                         at org.primeframework.mvc.workflow.DefaultWorkflowChain.continueWorkflow(DefaultWorkflowChain.java:44)
                         at org.primeframework.mvc.servlet.FilterWorkflowChain.continueWorkflow(FilterWorkflowChain.java:50)
                         at org.primeframework.mvc.servlet.PrimeFilter.doFilter(PrimeFilter.java:78)
                         at com.inversoft.maintenance.servlet.MaintenanceModePrimeFilter.doFilter(MaintenanceModePrimeFilter.java:63)
                         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
                         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
                         at com.inversoft.servlet.UTF8Filter.doFilter(UTF8Filter.java:27)
                         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
                         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
                         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:196)
                         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
                         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
                         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
                         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
                         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
                         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364)
                         at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:624)
                         at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
                         at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
                         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1650)
                         at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
                         at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
                         at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
                         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                         at java.base/java.lang.Thread.run(Thread.java:833)
                      

                      I'm not sure if this can be considered a bug in FA? What do you think?

                      BTW. Is this normal that if the kickstart file is used then no default email templates are generated at all?

                      joshuaJ 1 Reply Last reply Reply Quote 0
                      • joshuaJ
                        joshua @maciej.wisniowski
                        last edited by

                        @maciej-wisniowski

                        Glad that you are able to figure it out. I am not sure if that qualifies as a bug, but definitely something to be aware of and might be worth calling out in our documentation.

                        I believe that you should have email templates after a kickstart (at least the default ones). I can do some more testing to see if that same thing happens to me when I kickstart.

                        Thanks,
                        Josh

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post