RocketChat / RocketChat/Rocket.Chat
Password Complexity Feedback is Not Specific (UX Improvement)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Description
During user registration, the password field displays the required complexity conditions:
- At least 14 characters
- Max. 3 repeating characters
- At least one lowercase letter
- At least one uppercase letter
- At least one number
- At least one symbol
However, when the entered password does not meet one or more of these requirements, the only feedback shown is:
"Password must meet the complexity requirements."
This message is too generic and does not indicate which specific requirement is missing.
Current Behavior
- User enters a password.
- Clicks Next.
- If the password does not satisfy the criteria, a generic error message appears.
- The system does not specify:
- Whether the length is insufficient
- Whether an uppercase letter is missing
- Whether a symbol is missing
- Whether there are too many repeating characters
- Or which specific rule failed
This can lead to confusion and repeated trial-and-error attempts.
Expected Behavior
Provide specific validation feedback either:
- In real-time while typing, or
- Upon submission
For example:
- ✅ At least 14 characters
- ❌ Missing uppercase letter
- ✅ Contains number
- ❌ Missing symbol
Alternatively, dynamically highlight unmet requirements below the password field.
Why This Improvement Matters
- Enhances user experience
- Reduces onboarding friction
- Minimizes user frustration
- Aligns with modern UX best practices
- Makes password validation more transparent
Additional Context
This issue was observed during first-time registration.
Attaching a screenshot of the password section for reference.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the registration password field and trace where the generic complexity error is produced. Review how each listed requirement is validated, then determine whether the unmet rules should appear during typing or after submission. Done means the registration flow identifies the specific failed requirements instead of showing only the generic message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- authentication, frontend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100