How in the blazes are y'all getting user registration working
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 [email protected]) to work around this in the meantime.
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 my config.hjson file (with the default values as the full config. Once I removed that it worked.
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.