RocketChat / RocketChat/Rocket.Chat
Verification email shows success in UI but fails with MAIL_URL error in backend
Nobody has claimed this yet.
- 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:
- Run Rocket.Chat locally using Docker
- Configure SMTP settings in Administration → Email
- Go to Profile → click "Resend verification email"
- Observe success message in UI
- 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
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 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