Password Not Persisting After Reset When Enforce History Policy Is Enabled<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } .kb-wrapper { font-family: Lato, sans-serif; max-width: 100%; line-height: 1.7; } .kb-wrapper h2 { font-size: 14pt; font-weight: 900; color: #032D42; border-bottom: 2px solid #e8fce4; padding-bottom: 8px; margin-top: 20px; margin-bottom: 12px; } .kb-wrapper p, .kb-wrapper li, .kb-wrapper ul, .kb-wrapper ol { font-size: 12pt; color: #000000; margin-bottom: 12px; } .kb-wrapper ul, .kb-wrapper ol { margin-left: 20px; } .kb-wrapper li { margin-bottom: 8px; } .kb-wrapper code { background-color: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; padding: 2px 6px; font-family: monospace; font-size: 11pt; } .kb-wrapper pre { background-color: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; padding: 10px; overflow-x: auto; font-family: monospace; font-size: 11pt; margin: 10px 0; } .kb-wrapper .callout-info { border-left: 4px solid #52B8FF; background-color: #e6f4ff; padding: 12px; margin: 15px 0; } .kb-wrapper .callout-warning { border-left: 4px solid #e6a817; background-color: #fff4e0; padding: 12px; margin: 15px 0; } .kb-wrapper .callout-info p, .kb-wrapper .callout-warning p { margin: 0; } .kb-wrapper ol.steps { counter-reset: step-counter; list-style: none; padding-left: 0; } .kb-wrapper ol.steps li { counter-increment: step-counter; margin-bottom: 12px; padding-left: 40px; position: relative; } .kb-wrapper ol.steps li:before { content: counter(step-counter); position: absolute; left: 0; top: 0; background-color: #032D42; color: #63DF4E; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 12pt; } .kb-wrapper table { border-collapse: collapse; width: 100%; margin: 15px 0; } .kb-wrapper table th { background-color: #032D42; color: #FFFFFF; padding: 10px; text-align: left; font-weight: bold; } .kb-wrapper table td { padding: 10px; border: 1px solid #d0d0d0; } .kb-wrapper table tr:nth-child(even) { background-color: #e8fce4; } .kb-wrapper a { color: #032D42; text-decoration: underline; } .kb-wrapper .related-links { margin-top: 20px; } .kb-wrapper .related-links ul { list-style: none; padding-left: 0; } .kb-wrapper .related-links li { margin-bottom: 10px; } .kb-wrapper .link-disclaimer { font-size: 10pt; font-style: italic; color: #555555; margin-top: 4px; margin-left: 20px; } Issue When the "Password needs reset" flag is set on a user account, the user's password change does not persist when logging in to the password reset application. The page reloads after the password change attempt, but the password value remains unchanged. Symptoms Administrator sets the "Password needs reset" flag on a user's profileUser logs in and accesses the password reset portalUser enters a new password and submits the changeThe page reloads without error, but the password has not been updatedUser must repeat the password change process Facts Affected component: Self-Service Password ResetError message: Error: Cannot invoke "String.getBytes()" because "encryptedText" is nullRoot cause: The error occurs in the flow context when the "Enforce history policy" setting is enabled on the password reset process. This setting causes encryption operations to fail, preventing the password value from being persisted to the database.Configuration impact: The issue affects password reset processes with the "Enforce history policy" option enabled Release All versions Cause The password reset process contains a logic flow that attempts to encrypt and validate the new password value. When the "Enforce history policy" option is enabled on the password reset process configuration, a null value is passed to the encryption handler for the encryptedText parameter. This causes a null pointer exception that halts the password update operation silently, leaving the user's password unchanged despite a successful page reload. Technical detail: The encryption call fails before the password is written to the sys_user table, so no error is surfaced to the end user. The issue occurs in the flow context before the database update is committed. Resolution Disable the "Enforce history policy" setting on the affected password reset process. Navigate to System Security > Password Reset Processes (or access the table directly at pwd_process)Open the password reset process that is experiencing the issue (typically the "Default Self Service" process)Locate the Enforce history policy checkbox on the process formUncheck the Enforce history policy optionClick Update to save the changeTest the password reset functionality by setting the "Password needs reset" flag on a test user account and verifying that the password change persists Note: After disabling "Enforce history policy", the password reset process will no longer enforce password history rules. This means users may be able to set a password that has been used previously. Review your organization's password policy requirements before applying this change. Related Links Self-Service Password ResetConfigure a Password Reset ProcessService Account Password Policy