Balena experienced a minor incident on January 30, 2025 affecting Dashboard, lasting 1d 6h. The incident has been resolved; the full update timeline is below.
Affected components
Update timeline
- identified Jan 30, 2025, 06:30 PM UTC
Users may find that the link in the email verification does not work when signing up with an e-mail address. We are aware of the issue and are investigating. Users can try using incognito mode to open the link.
- monitoring Jan 31, 2025, 09:43 AM UTC
A fix has been implemented and we are monitoring the results.
- resolved Feb 01, 2025, 01:18 AM UTC
This incident has been resolved.
- postmortem Feb 10, 2025, 03:22 PM UTC
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.