```
Rails Version: 5.0.0.1
Devise Version: 4.2

```

In my devise.rb file I define lifetime for password token to be 6 hours

```
  # Time interval you can reset your password with a reset password key.
  # Don't put a too small interval or your users won't have the time to
  # change their passwords.
  config.reset_password_within = 6.hours

```

When I opt for password reset through the Forgot Password link, I can see the timestamp and token generated

```
postgres=> select reset_password_token, reset_password_sent_at from users where email='email@gmail.com';
                       reset_password_token                       |   reset_password_sent_at
------------------------------------------------------------------+----------------------------
 89f51bce1bc6b495c16a50b015d03897d0520a8b58c300a5deef16b2c45cac82 | 2016-09-16 21:18:01.322362

```

Active record and application timezone are both set to `'Asia/Kolkata'` but when I click on the link delivered in email and try changing password (which is within minutes of the email delivered) the password change fails with message

Reset password token has expired, please request a new one

***Update One***
I have `recoverable` enabled in the user model, but to no use here.

```
class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable,
         :recoverable, :rememberable, :trackable, :validatable, :lockable, :timeoutable
end

```

***Update Two***

Here are the logs from after implementing changes suggested in answer 

Updated devise config to 

```
# Time interval you can reset your password with a reset password key.
# Don't put a too small interval or your users won't have the time to
# change their passwords.
config.reset_password_within = 6.hours.from_now

```

The password update still fails, no real error in the logs neither.

```
I, [2016-09-19T20:54:04.793217 #19146]  INFO -- : Started PUT "/users/password" for ::1 at 2016-09-19 20:54:04 +0530
I, [2016-09-19T20:54:04.795888 #19146]  INFO -- : Processing by Devise::PasswordsController#update as HTML
I, [2016-09-19T20:54:04.796108 #19146]  INFO -- :   Parameters: {"utf8"=>"✓", "authenticity_token"=>"hXJycHI8Xmwo5D1pTS6a+naO1aV6PUDoqNw1kLjxWksF1zf+dEJ/j2KnmlOt0JSSe4F53cVP4uyBw1Pe0G4u8Q==", "user"=>{"reset_password_token"=>"[FILTERED]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Change my password"}
D, [2016-09-19T20:54:04.803200 #19146] DEBUG -- :   User Load (3.8ms)  SELECT  "users".* FROM "users" WHERE "users"."reset_password_token" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["reset_password_token", "f278c026f607eea0f948e79e16861a90c9f1c73af271b2b803787f5fb68bdd04"], ["LIMIT", 1]]

```