RocketChat / RocketChat/Rocket.Chat

Failed to send direct message

Open
#30,174 3 comments 12 reactions 0 assignees View on GitHub

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:
  1. write direct message
  2. hit enter
  3. 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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.