RocketChat / RocketChat/Rocket.Chat

Password Complexity Feedback is Not Specific (UX Improvement)

Open
#39,005 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: feature
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
  1. User enters a password.
  2. Clicks Next.
  3. If the password does not satisfy the criteria, a generic error message appears.
  4. 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.

Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.