RocketChat / RocketChat/Rocket.Chat
Failed to send direct message
Open
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Description:
direct message failed to be sent and greyed out
Steps to reproduce:
- write direct message
- hit enter
- message greyed out with exception in log
Expected behavior:
message sent
Actual behavior:
message is not sent
Server Setup Information:
- Version of Rocket.Chat Server: 5.4.10
- Operating System:
- Deployment Method: k8s
- Number of Running Instances: 6
- DB Replicaset Oplog:
- NodeJS Version:
- MongoDB Version: 5.0.14
Client Setup Information
- Desktop App or Browser Version: 3.9.6
- Operating System: macos
Additional context
Relevant logs:
{"level":50,"time":"2023-08-25T08:11:35.565Z","pid":1,"hostname":"rocketchat-rocketchat-5c56bd97d8-5454p","name":"System","msg":"Exception while invoking method createDirectMessage","err":{"type":"errorClass","message":"Match error: Expected string, got undefined","stack":"Error: Match error: Expected string, got undefined<br> at check (packages/check/match.js:36:17)<br> at createDirectMessage (server/methods/createDirectMessage.js:14:2)<br> at MethodInvocation.createDirectMessage (server/methods/createDirectMessage.js:109:10)<br> at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1885:12)<br> at packages/ddp-server/livedata_server.js:1803:15<br> at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)<br> at packages/ddp-server/livedata_server.js:1801:36<br> at new Promise (<anonymous>)<br> at Server.applyAsync (packages/ddp-server/livedata_server.js:1800:12)<br> at Server.apply (packages/ddp-server/livedata_server.js:1739:26)<br> at Server.call (packages/ddp-server/livedata_server.js:1721:17)<br> at Object.post (app/api/server/v1/misc.ts:612:27)<br> at app/api/server/api.js:463:96<br> at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)<br> at Object._internalRouteActionHandler [as action] (app/api/server/api.js:463:39)<br> at Route._callEndpoint (packages/rocketchat_restivus/lib/route.coffee:150:32)<br> at packages/rocketchat_restivus/lib/route.coffee:59:33<br> at packages/simple_json-routes.js:100:9<br> => awaited here:<br> at Promise.await (/app/bundle/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:60:12)<br> at Server.apply (packages/ddp-server/livedata_server.js:1752:22)<br> at Server.call (packages/ddp-server/livedata_server.js:1721:17)<br> at Object.post (app/api/server/v1/misc.ts:612:27)<br> at app/api/server/api.js:463:96<br> at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)<br> at Object._internalRouteActionHandler [as action] (app/api/server/api.js:463:39)<br> at Route._callEndpoint (packages/rocketchat_restivus/lib/route.coffee:150:32)<br> at packages/rocketchat_restivus/lib/route.coffee:59:33<br> at packages/simple_json-routes.js:100:9","path":"","sanitizedError":{"type":"errorClass","message":"Match failed [400]","stack":"Error: Match failed [400]<br> at errorClass.<anonymous> (packages/check/match.js:91:27)<br> at new errorClass (packages/meteor.js:660:17)<br> at check (packages/check/match.js:36:17)<br> at createDirectMessage (server/methods/createDirectMessage.js:14:2)<br> at MethodInvocation.createDirectMessage (server/methods/createDirectMessage.js:109:10)<br> at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1885:12)<br> at packages/ddp-server/livedata_server.js:1803:15<br> at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)<br> at packages/ddp-server/livedata_server.js:1801:36<br> at new Promise (<anonymous>)<br> at Server.applyAsync (packages/ddp-server/livedata_server.js:1800:12)<br> at Server.apply (packages/ddp-server/livedata_server.js:1739:26)<br> at Server.call (packages/ddp-server/livedata_server.js:1721:17)<br> at Object.post (app/api/server/v1/misc.ts:612:27)<br> at app/api/server/api.js:463:96<br> at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)<br> at Object._internalRouteActionHandler [as action] (app/api/server/api.js:463:39)<br> at Route._callEndpoint (packages/rocketchat_restivus/lib/route.coffee:150:32)<br> at packages/rocketchat_restivus/lib/route.coffee:59:33<br> at packages/simple_json-routes.js:100:9","isClientSafe":true,"error":400,"reason":"Match failed","errorType":"Meteor.Error"},"errorType":"Match.Error"},"msg":"Match error: Expected string, got undefined"}
Exception in defer callback: Error: You have not provided a mail URL. You can provide it by using the environment variable MAIL_URL or your settings. You can read more about it here: https://docs.meteor.com/api/email.html. at Object.Email.send (packages/email/email.js:259:11) at app/mailer/server/api.ts:174:27 at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12) at packages/meteor.js:555:25 at runWithEnvironment (packages/meteor.js:1320:24)
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 server/methods/createDirectMessage.js, especially the check at line 14 and the method call at line 109. Trace the request from app/api/server/v1/misc.ts:612 and reproduce the direct-message attempt using the supplied server and client versions. Done means a direct message is sent without the Match error or the related greyed-out message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100