user.send both resolving and rejecting
Discord.js v14.13.0
I have the following code (the user is fetched by Client.users.fetch(discordUserId).then()):
user.send("reply goes here").then((message) => {
console.log(message);
}).catch((err) => {
console.log(err.message);
}).finally(() => {
// stuff
});
When the code fires, the message is sent as a DM to the user (correct), but I also get a rejection with a "Cannot send message to this user" error. I'm not sure why it's both resolving and rejecting, but that doesn't seem right so I assume I'm missing something. Thoughts?
Edit: The error is a DiscordAPIError, code 50007.9 Replies
- What's your exact discord.js
npm list discord.js
and node node -v
version?
- Not a discord.js issue? Check out #other-js-ts.
- Consider reading #how-to-get-help to improve your question!
- Explain what exactly your issue is.
- Post the full error stack trace, not just the top part!
- Show your code!
- Issue solved? Press the button!
- ✅
Marked as resolved by OPCan you show more code, where you're fetching?
Sure...
const client = new Client({
intents : [ GatewayIntentBits.Guilds, GatewayIntentBits.DirectMessages, GatewayIntentBits.MessageContent ],
partials : [ Partials.Channel, Partials.Message ]
});
// lots of stuff happens inbetween
client.users.fetch(discordUserId).then((user) => {
if( user ) {
//code block from above
} else {
// resolve a previous promise
}
}).catch((err) => {
// handle the errors and reject
})
No need for that if statement, if the user doesn't exist, the promise will reject
k, good to know
i assume that doesn't impact the resolve/reject of the user.send though
i get the message in my test user's DMs
...along with the message on the console, and the error in the console from both the .then and .catch blocks
where is this code executing?
is it in the
messageCreate
event?
could you share more of the code leading up to user.send
?yes...effectively:
client.on("messageCreate", async(message) => {
client.users.fetch...
});
there's more stuff in there, but that's the flow
so it's executing for the dm your bot sends as well?
your bot can't send a dm to itself
these would be two separate promises, 1 resolving and 1 rejecting
no, i test for if the author of the message is the bot and ignore anything sent by the bot...this is specifically for a test user sending the bot a DM, the bot processing that DM, and sending a reply back