Breaks the layout below 380px — reproduced on two machines. Expected: the SSO login keeps its state. Actual: it returns a 500 after the first page.
Mobile Bugs
Mobile Bugs for Mobile Apps.
The vote button returns a 500 after the first page if the session expired in another tab
InvestigatingDouble-submits on a slow connection — reproduced on two machines. Expected: the public site keeps its state. Actual: it never clears the loading spinner.
Shows a stale vote count until a hard refresh — reproduced on two machines. Expected: the roadmap keeps its state. Actual: it sends two emails for a single status change.
Escapes markdown twice — reproduced on two machines. Expected: the settings page keeps its state. Actual: it never clears the loading spinner.
Rejects valid email addresses containing a plus sign — reproduced on two machines. Expected: the inbox keeps its state. Actual: it shows a stale vote count until a hard refresh.
Rejects valid email addresses containing a plus sign — reproduced on two machines. Expected: the dashboard keeps its state. Actual: it drops the selected filter on back-navigation.
Breaks the layout below 380px — reproduced on two machines. Expected: the vote button keeps its state. Actual: it counts an anonymous vote twice after the cookie is reset.
Shows a stale vote count until a hard refresh — reproduced on two machines. Expected: the changelog keeps its state. Actual: it leaks the previous org's data into the picker.
Escapes markdown twice — reproduced on two machines. Expected: the changelog keeps its state. Actual: it renders the wrong timezone.
Ignores the sort order on mobile — reproduced on two machines. Expected: the mobile web app keeps its state. Actual: it rejects valid email addresses containing a plus sign.
Never clears the loading spinner — reproduced on two machines. Expected: the roadmap keeps its state. Actual: it escapes markdown twice.
Throws a hydration mismatch in Safari — reproduced on two machines. Expected: the search keeps its state. Actual: it escapes markdown twice.
Search never clears the loading spinner
In progressEscapes markdown twice — reproduced on two machines. Expected: the CSV export keeps its state. Actual: it renders the wrong timezone.
Escapes markdown twice — reproduced on two machines. Expected: the vote button keeps its state. Actual: it double-submits on a slow connection.
Sends two emails for a single status change — reproduced on two machines. Expected: the keyboard shortcuts keeps its state. Actual: it double-submits on a slow connection.
Keyboard shortcuts shows a stale vote count until a hard refresh when the board is set to internal
In progressNever clears the loading spinner — reproduced on two machines. Expected: the comment thread keeps its state. Actual: it shows a stale vote count until a hard refresh.
Counts an anonymous vote twice after the cookie is reset — reproduced on two machines. Expected: the outbound webhooks keeps its state. Actual: it escapes markdown twice.