diff --git a/packages/discord.js/src/structures/ThreadChannel.js b/packages/discord.js/src/structures/ThreadChannel.js
index fc365c17d..3c646b368 100644
--- a/packages/discord.js/src/structures/ThreadChannel.js
+++ b/packages/discord.js/src/structures/ThreadChannel.js
@@ -301,14 +301,16 @@ class ThreadChannel extends BaseChannel {
/**
* Fetches the message that started this thread, if any.
- * This only works when the thread started from a message in the parent channel, otherwise the promise will
- * reject. If you just need the id of that message, use {@link ThreadChannel#id} instead.
+ * The `Promise` will reject if the original message in a forum post is deleted
+ * or when the original message in the parent channel is deleted.
+ * If you just need the id of that message, use {@link ThreadChannel#id} instead.
* @param {BaseFetchOptions} [options] Additional options for this fetch
* @returns {Promise|null>}
*/
// eslint-disable-next-line require-await
async fetchStarterMessage(options) {
- return this.parent?.messages.fetch({ message: this.id, ...options }) ?? null;
+ const channel = this.parent?.type === ChannelType.GuildForum ? this : this.parent;
+ return channel?.messages.fetch({ message: this.id, ...options }) ?? null;
}
/**