Where does the bug appear (feature/product)?
Somewhere else…
Describe the Bug
After logging out of Cursor and attempting to change the email address, the application gets into a continuous loop of requests to the refresh-token API.
The browser keeps sending repeated requests to the refresh-token endpoint without stopping. This continues until the API rate limit is reached, after which the API starts returning a Too many requests error.
Steps to Reproduce
Log in to Cursor.
Log out from the account.
Navigate to the account/email change flow.
Attempt to change the email address.
Open the browser’s Network tab.
Observe the requests being made to the refresh-token endpoint.
Actual Behavior
The application continuously sends requests to the refresh-token API in a loop.
The request pattern appears to repeatedly alternate between the login and refresh-token endpoints, with the refresh-token request receiving a 307 redirect.
Eventually, the rate limit is reached and the API returns:
{“code”:“too_many_requests”,“message”:“Too many requests. Please try again shortly.”}
Expected Behavior
After logout, the application should clear/expire the existing authentication state and should not continuously attempt to refresh an invalid or expired session.
If the refresh token is invalid or unavailable, the application should stop retrying and gracefully redirect the user to the login/authentication flow instead of creating an infinite request loop.
Screenshots / Screen Recordings
Operating System
Other
Version Information
Website Issue
Additional Information
The issue is consistently visible in the browser Network tab, where multiple refresh-token requests are generated continuously until the rate limit is exhausted.
I have attached screenshots showing:
The repeated refresh-token requests in the Network tab.
The Too many requests response after the rate limit is reached.
Please investigate the refresh-token retry/redirect logic after logout, particularly the interaction between the logged-out authentication state and the email-change flow.
Does this stop you from using Cursor
Yes - Cursor is unusable
