diff --git a/server/handlers.go b/server/handlers.go
index 2b033c870ae61fde1706b2914ab49b41fff28799..5512d87fb790bd7051d5952d0887c353e11e9015 100644
--- a/server/handlers.go
+++ b/server/handlers.go
@@ -1344,10 +1344,14 @@ func (s *Server) handlePasswordGrant(w http.ResponseWriter, r *http.Request, cli
 			if oldTokenRef, ok := session.Refresh[tokenRef.ClientID]; ok {
 				// Delete old refresh token from storage.
 				if err := s.storage.DeleteRefresh(oldTokenRef.ID); err != nil {
-					s.logger.Errorf("failed to delete refresh token: %v", err)
-					s.tokenErrHelper(w, errServerError, "", http.StatusInternalServerError)
-					deleteToken = true
-					return
+					if err == storage.ErrNotFound {
+						s.logger.Warnf("database inconsistent, refresh token missing: %v", oldTokenRef.ID)
+					} else {
+						s.logger.Errorf("failed to delete refresh token: %v", err)
+						s.tokenErrHelper(w, errServerError, "", http.StatusInternalServerError)
+						deleteToken = true
+						return
+					}
 				}
 			}