And for the love of god, can we PLEASE document the fixes we’re finding along the way.
I’m currently impacted by the user registration bug that relates to user constraints in the DB - and it’s completely ruining what would be an amazing launch. However, apparently some other server owners have it working! Buuuuuttt, no one is posting their secrets - and it’s really hampering my ability to deliver this instance.
So, please, someone explain how I fix this issue and get a working instance.
Do I need to roll back? If so, what version? Do I need to run some PSQL? Do I need to patch some Rust?
EDIT: SUCCESS!
Here is the sacred knowledge for my particular situation.
It was half PEBKAC and half bug -
The PEBKAC - If using protonmail SMTP - you’ll need ‘starttls’ for it to work.
If SMTP is broken in this way, it seems to cause a bug in user creation that will essentially create partial data that would prevent user creation with the same name from occuring again. You can use a “plus” address (ie youremail+stuff@domain.com) to work around this in the meantime.
Sorry - I didn’t run into any issues with user creation. Can you provide some context to this? What are you seeing in terms of errors/behaviour?
Posted an update as a root level comment.
Ah, sorry, yes, context:
The bug I think I’m impacted by - https://github.com/LemmyNet/lemmy/issues/2955
The error I’m getting:
panicked at ‘couldnt create local user: DatabaseError(UniqueViolation, “duplicate key value violates unique constraint "local_user_email_key"”)’, crates/db_schema/src/impls/local_user.rs:157:8
The user_email value is indeed different, ( I have a handful that I’m using to test) and this occurs no matter what I try. Even disabling email verification didn’t seem to help.
I’m using the official docker instructions, and everything else appears to function perfectly - and my initially created user has no problem interacting with with the app. Heck, I’m using my instance to communicate with y’all.
Double-Update: Suddenly it’s working again? I think using Incognito sessions to test might be causing the issue… This time I also used a “plus” email for more uniqueness (while using the same inbox).
EDIT: NOPE! Nvm, it was because email validation was disabled that things were working. As soon as I enabled it again, I got a different error. Which has me suspect that the bug I was experiencing earlier is a result of the following condition.
- The user creation transaction doesn’t back out on SMTP failure, thereby preventing the creation of the account due to the aforementioned constraint issue.
I hit this problem, for me it was because I added a
setup
section to myconfig.hjson
file (with the default values as the full config. Once I removed that it worked.
It would help if you posted the error message you’re seeing.
Posted an update as a root level comment.
Since you found this sacred knowledge, it would probably be a good idea to comment on the GitHub issue in addition to here, since that’s where most people will be looking if they get these errors.
Done! Thanks for the reminder, I’m deep in trying to get users onboarded and such and probably would’ve forgot!
Final-ish comment on this:
Here are the valid workarounds to this issue:
- Turn off email validation and enable captchas (if doing open registration like I am)
- Turn on the registration from, and disable captchas.
- Fix your SMTP settings
- For anyone impacted by a failed registration, have them use a “plus” email address like ( theiruser+lemmy@somedomain.com ) after you have it fixed.