Temporary user records are treated as permanent
It appears that user records that are in transit between registration and activation are treated as permanent user records. Once they are created (I can't find any delete source code) they persist in the system as blocking other users from registering with conflicting credentials.
I can reference #454 as an example, and CakePHP also has an issue opened at https://github.com/cakephp/cakephp/issues/11624
If new user records are created but not activated those records block future users from using the same email or username during registration.
- the registration form should not block if the email exists already (i.e. don't force the user to use the "send activation again" method).
- the registration form should not block if the username already exists and the user record is not verified (i.e. do not block if the user used the wrong email address).
Don't let verification block registration. Treat user records awaiting verification as temporary and always prefer to delete or overwrite them. Allow the user to use the registration form as the preferred method of starting an account.
You have a point here, we could make registration overwrite the temp record.