Title: password_reset_key_expired
Published: April 25, 2014
Last modified: May 20, 2026

---

# apply_filters( ‘password_reset_key_expired’, WP_Error $return, int $user_id )

## In this article

 * [Description](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#wp--skip-link--target)

Filters the return value of [check_password_reset_key()](https://developer.wordpress.org/reference/functions/check_password_reset_key/)
when an old-style key or an expired key is used.

## 󠀁[Description](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#description)󠁿

Prior to 3.7, plain-text keys were stored in the database.

## 󠀁[Parameters](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#parameters)󠁿

 `$return`[WP_Error](https://developer.wordpress.org/reference/classes/wp_error/)

A [WP_Error](https://developer.wordpress.org/reference/classes/wp_error/) object
denoting an expired key.
 Return a [WP_User](https://developer.wordpress.org/reference/classes/wp_user/)
object to validate the key.

`$user_id`int

The matched user ID.

## 󠀁[Source](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#source)󠁿

    ```php
    return apply_filters( 'password_reset_key_expired', $return, $user_id );
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/user.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/user.php#L3225)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/user.php#L3225-L3225)

## 󠀁[Related](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#related)󠁿

| Used by | Description | 
| [check_password_reset_key()](https://developer.wordpress.org/reference/functions/check_password_reset_key/)`wp-includes/user.php` |

Retrieves a user row based on password reset key and login.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/hooks/password_reset_key_expired/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.3.0](https://developer.wordpress.org/reference/since/4.3.0/) | Previously key hashes were stored without an expiration time. | 
| [3.7.0](https://developer.wordpress.org/reference/since/3.7.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fpassword_reset_key_expired%2F)
before being able to contribute a note or feedback.