TalkYard rejects email with + character
A blog reader reported that when they try to sign up for TalkYard using a +
in their email, TalkYard responds with:
Weird email. Please use a real email address [TyE04HK83]
I tried and was able to reproduce this by trying to sign up with the email test+talkyard@example.com
.
A +
character is valid in email addresses, and many users use them for mail filtering rules (e.g., mike+talkyard@example.com, mike+discourse@example.com both go to mike@example.com but the +
suffix lets me add metadata about the sender).
Additionally, the error message is kind of user-hostile, as the wording suggests the user is deliberately using a fake email address rather than suggesting that they made a mistake. Could the user-facing message just be "Invalid email"?
On the same note, the input fields are a bit user-hostile as well. They tell the user that their email address is invalid before they even have a chance to finish entering it. Could the check be deferred to the blur
event rather than checking in the middle of the user typing?
- KajMagnus @KajMagnus2023-06-27 14:22:00.521Z
About
+
: Oh yes it's a valid char, I guess I don't know about that back then (when I wrote that code), or I was sleepy. Fixing in the upcoming version.About the error messages: Ok I'll change to "Invalid email" or sth like that. (Hmm yes "Please use a real ..." sounds a bit odd, now when I think about it.)
They tell the user that their email address is invalid before they even have a chance to finish entering it [..] blur event [...]
That's a good idea.
Hmm, I think some errors can be shown directly, namely if typing an invalid / unsupported character in the email address (then that's likely a typo, and one would want to hit Backspace directly).
While other errors can wait until blur. Or maybe if the user is away / inactive for fairly long — so they sees when back that "oh I wasn't done typing the email", hmm.Thanks for the video
- In reply tomichael⬆:KajMagnus @KajMagnus2023-07-13 15:30:19.436Z
This has been fixed now (I should add auto tests too)
- Michael Lynch @michael
I think there's been a regression. I tried verifying the fix, and now the submit button is completely disabled, so users can't sign up at all:
- KajMagnus @KajMagnus2023-07-18 11:11:34.277Z
I couldn't reproduce, not yet at least. This happens if you, in the comments section, click Log In above the comments, and then switch to guest login by clicking just type a name?
If I do that, then the Submit button is first disabled, however once I type two characters in the Name field (min length) it gets enabled.
The email address: When I test (over at mtlynch.io) the Submit button is enabled if there's no email specified, or if it's valid (and
+something
works fine).(If I click Reply, type a comment and then "Post reply" and log in after composing, then the Submit button is enabled directly. A bit inconsistent)
Can I post test comment(s) over at your blog? What blog post page did you test from?
(What do you use for recording screencasts?)
I tried in Chrome and FF Private Browsing. There aren't any browser plugins activated in FF Private Browsing?
You don't happen to have kept an old browser page open, for long, > a week or so? But I don't see how that could matter, since the login popup gets loaded right now from the server.- Michael Lynch @michael
I was trying on Firefox 114. I did an update to Firefox 115, and it went away. That probably didn't make a difference, but maybe it knocked something out of cache?
When it was failing, this error popped up in the JS console:
Uncaught (in promise) Error: Minified React error #200; visit https://reactjs.org/docs/error-decoder.html?invariant=200 for the full message or use the non-minified dev environment for full errors and additional helpful warnings. render https://c1.ty-cdn.net/-/assets/v0.2023.008/slim-bundle.min.js:10 startMainReactRoot https://c1.ty-cdn.net/-/assets/v0.2023.008/slim-bundle.min.js:10 renderPageInBrowser https://c1.ty-cdn.net/-/assets/v0.2023.008/slim-bundle.min.js:10
But now the issue is gone, and I've confirmed your fix. Thanks!
- KajMagnus @KajMagnus2023-07-18 11:49:37.204Z
Ok :- )
(The browser cache? yes maybe, hmm, at the same time, the JS & CSS links use asset versioning ... Except for
/-/blog-comments.min.js
which instead has a pretty short cache time, but it's not used in the login popup, hmm, oh well.)Thanks for the error log message — it looks harmless, & I added a note about removing it. (Seems as if Ty looks for somewhere to render a page, but that won't work in the login popup.)
- Progresswith handling this problem