You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add password reset task documentation and error handling updates
- Introduced a new section in the session tasks guide for the password reset task, including its key and description.
- Added error handling details for compromised passwords in the custom flows documentation.
- Documented the `<TaskResetPassword />` component for rendering the password reset UI.
- Updated the password protection guide to include instructions for manually marking passwords as compromised.
Copy file name to clipboardExpand all lines: docs/guides/configure/session-tasks.mdx
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ The following table lists the available tasks and their corresponding keys.
14
14
| Setting | Key | Description |
15
15
| - | - | - |
16
16
|[Allow Personal Accounts](https://dashboard.clerk.com/~/organizations-settings)|`choose-organization`| Disabled by default when enabling Organizations. When disabled, users are required to choose an Organization after authenticating. When enabled, users can choose a Personal Account instead of an Organization. |
17
+
|[Password reset](/docs/reference/components/authentication/task-reset-password)|`reset-password`| When the user is required to reset their password on their next sign-in. |
17
18
18
19
## Session states
19
20
@@ -34,6 +35,7 @@ The following table lists the available tasks and their corresponding components
> Personal accounts being disabled by default was released on 08-22-2025. Applications created before this date will not be able to see the **Allow Personal Accounts** setting, because Personal Accounts were enabled by default.
Copy file name to clipboardExpand all lines: docs/guides/development/custom-flows/error-handling.mdx
+277Lines changed: 277 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -271,3 +271,280 @@ For instance, if you wish to inform a user at which absolute time they will be a
271
271
```
272
272
</Tab>
273
273
</Tabs>
274
+
275
+
### Password compromised
276
+
277
+
If you have marked a user's password as compromised and they have another identification method to sign-in, you will receive an HTTP status of `422 (Unprocessable Entity)` and the following error payload:
278
+
279
+
```json
280
+
{
281
+
"errors": [
282
+
{
283
+
"message":"Password compromised",
284
+
"long_message":"Your password appears to have been compromised or it's no longer trusted and cannot be used. Please use another method to continue.",
285
+
"code":"form_password_compromised",
286
+
"meta": {
287
+
"name":"param"
288
+
}
289
+
}
290
+
]
291
+
}
292
+
```
293
+
294
+
When a user password is marked as compromised, they will not be able to sign in with their compromised password, so you should prompt them to sign-in with another method. If they do not have any other identification methods to sign-in, e.g if they only have username and password, they will be signed in but they will be required to reset their password.
295
+
296
+
<Tabs items={["Next.js"]}>
297
+
<Tab>
298
+
This example is written for Next.js App Router but it can be adapted for any React-based framework.
Copy file name to clipboardExpand all lines: docs/guides/secure/password-protection-and-rules.mdx
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,3 +49,27 @@ For users that set an average/weak password that complies with your organization
49
49
50
50
> [!NOTE]
51
51
> OWASP recommends providing feedback to users on the strength of their password and offering suggestions for improvement. This can help users create stronger passwords and improve the overall security of the application.
52
+
53
+
## Manually marking passwords as compromised
54
+
55
+
Clerk provides a way to manually mark passwords as compromised. This is useful for blocking passwords in the case that:
56
+
57
+
- The password has recently been added to the compromised password database
58
+
- The user was able to set a compromised password because protection was off at the time
59
+
60
+
> [!NOTE]
61
+
> This action will require the user to create a new password on their next sign-in.
62
+
> If you are implementing custom authentication flows, you will need to handle the compromised password flow by yourself. See [Error handling](/docs/guides/development/custom-flows/error-handling#password-compromised) for more information.
63
+
> If your instance is older than December 8th 2025, you will need to update your instance to the **Reset password session task** update.
64
+
> 1. In the Clerk Dashboard, navigate to [**Updates**](https://dashboard.clerk.com/~/updates) page.
65
+
> 2. Find the **Reset password session task**, check if the SDK versions mentioned are the ones you are using, if not you will first need to upgrade your SDK's to at least the version's mentioned.
66
+
> 3. Once you have upgraded your SDK's, you can update to use the **Reset password session task** by clicking the **Update** button.
67
+
68
+
To manually mark a user's password as compromised:
69
+
70
+
1. In the Clerk Dashboard, navigate to [**Users**](https://dashboard.clerk.com/~/users) page and find the user you want to mark as compromised.
71
+
1. Click the user's profile and in the password section, if a password is set, you will find the **Mark password as compromised** action, under the three dots menu.
72
+
1. Click the **Mark password as compromised** action and a confirmation dialog will appear.
73
+
1. You will need to type "Compromised" to confirm the action.
74
+
1. Click the **Confirm** button and the user's password will be marked as compromised.
75
+
1. Now the user will not be able to sign in with their existing password and will need to create a new password on their next sign-in.
0 commit comments