A bug was introduced in the UI after the recent upgrade to React Router 6, which was redirecting the user away from the email verification page before the verification was initiated when a JWT was already present in the localStorage.
We have a base "route component" responsible for doing that in many of our pages, as well as handling return URLs, so that authenticated users are redirected away from the non-authenticated pages, but because of a race condition this issue did not exhibit itself.
We’ve put together a workaround to no longer use that base route component in the email verification page. We might want to reconsider some things though and handle our routing in a different way based on what we learned.
It seems that with the old React Router, the page was rendered before the JWT was loaded, so the verification worked fine, but after the upgrade it seems that the JWT is now loaded before the page renders. Semantically, what we were doing was wrong, and probably the only thing that we needed was the returnUrl handling, but because of the race condition, this problem has gone unnoticed for years.