RocketChat / RocketChat/Rocket.Chat

Verification email shows success in UI but fails with MAIL_URL error in backend

Open
#39,782 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: bug
Dominant language
TypeScript
Stars
46.1k
Forks
13.9k
Avg merge
3d 3h
Merged PRs (30d)
130

Description

Description:

Verification email shows success in UI ("Verification email sent"), but actually fails in backend with error:

"You have not provided a mail URL"

This creates a misleading situation where the user believes the email was sent successfully, but it is not.


Steps to reproduce:
  1. Run Rocket.Chat locally using Docker
  2. Configure SMTP settings in Administration → Email
  3. Go to Profile → click "Resend verification email"
  4. Observe success message in UI
  5. Check logs using: docker logs rocketchat

Expected behavior:

Email should be sent successfully OR an error should be displayed in the UI if sending fails.


Actual behavior:

UI shows success message ("Verification email sent"), but backend logs show failure:

Error: You have not provided a mail URL


Server Setup Information:
  • Version of Rocket.Chat Server: 8.2.1
  • License Type: Community
  • Number of Users: 1 (local setup)
  • Operating System: Windows (Docker Desktop)
  • Deployment Method: docker
  • Number of Running Instances: 1
  • DB Replicaset Oplog: not configured
  • NodeJS Version: 22.x (from Docker image)
  • MongoDB Version: 8.0

Client Setup Information
  • Desktop App or Browser Version: Chrome (latest)
  • Operating System: Windows

Additional context

SMTP settings are configured via the admin panel, but certain email flows (like verification email) still depend on MAIL_URL internally.

This results in inconsistent behavior:

  • UI indicates success
  • Backend fails silently

Relevant logs:

Error: You have not provided a mail URL
at Object.Email.sendAsync (packages/email/email.js:257:11)
at AccountsServer.Accounts.sendVerificationEmail (packages/accounts-password/password_server.js:912:5)

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 with packages/email/email.js at Object.Email.sendAsync and packages/accounts-password/password_server.js at Accounts.sendVerificationEmail, then trace the resend-verification request from the UI. Reproduce it with the documented Docker setup and inspect docker logs rocketchat; done means a failed send is surfaced in the UI or the email is sent successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
authentication, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.