pode me ajudar  a corrigir este erro /home/user/bot-discord-dnv/node_modules/@discordjs/rest/dist/index.js:1346
        throw new Error("Expected token to be set for this request, but none was present");
              ^

Error: Expected token to be set for this request, but none was present
    at _REST.resolveRequest (/home/user/bot-discord-dnv/node_modules/@discordjs/rest/dist/index.js:1346:15)
    at _REST.queueRequest (/home/user/bot-discord-dnv/node_modules/@discordjs/rest/dist/index.js:1306:46)
    at _REST.request (/home/user/bot-discord-dnv/node_modules/@discordjs/rest/dist/index.js:1272:33)
    at _REST.get (/home/user/bot-discord-dnv/node_modules/@discordjs/rest/dist/index.js:1228:17)
    at ChannelManager.fetch (/home/user/bot-discord-dnv/node_modules/discord.js/src/managers/ChannelManager.js:123:41)
    at Logger.log (/home/user/bot-discord-dnv/node_modules/discored/src/events/Logger.js:8:53)
    at Object.<anonymous> (/home/user/bot-discord-dnv/index.js:81:17)
    at Module._compile (node:internal/modules/cjs/loader:1376:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
    at Module.load (node:internal/modules/cjs/loader:1207:32)

Node.js v20.11.1

const { ChannelType, ThreadAutoArchiveDuration } = require('discord.js');

class ThreadManager {
  constructor(client) {
    this.client = client;
  }

  async createThread(channelId, threadName, messageContent, autoArchiveDuration = ThreadAutoArchiveDuration.OneHour, type = ChannelType.PublicThread, reason = 'Criado por um usuário') {
    try {
      // Obtém o canal onde a thread será criada
      const channel = await this.client.channels.fetch(channelId);
      
      if (!channel.isText()) {
        throw new Error('O canal fornecido não é um canal de texto.');
      }

      // Cria a thread no canal especificado
      const thread = await channel.threads.create({
        name: threadName,
        autoArchiveDuration: autoArchiveDuration,
        type: type,
        reason: reason,  // Razão configurável para a criação da thread
      });

      // Envia uma mensagem para a thread, se fornecida
      if (messageContent) {
        await thread.send(messageContent);
      }

      console.log(`Thread criada com sucesso: ${thread.name}`);
      return thread;
    } catch (error) {
      console.error('Erro ao criar thread:', error);
    }
  }

  async deleteThread(threadId) {
    try {
      const thread = await this.client.channels.fetch(threadId);

      if (!thread.isThread()) {
        throw new Error('O canal fornecido não é uma thread.');
      }

      await thread.delete();
      console.log(`Thread deletada com sucesso: ${thread.name}`);
    } catch (error) {
      console.error('Erro ao deletar thread:', error);
    }
  }

  async joinThread(threadId) {
    try {
      const thread = await this.client.channels.fetch(threadId);

      if (!thread.isThread()) {
        throw new Error('O canal fornecido não é uma thread.');
      }

      if (thread.joinable) {
        await thread.join();
        console.log(`Entrou na thread: ${thread.name}`);
      } else {
        console.log(`Não é possível entrar na thread: ${thread.name}`);
      }
    } catch (error) {
      console.error('Erro ao entrar na thread:', error);
    }
  }

  async leaveThread(threadId) {
    try {
      const thread = await this.client.channels.fetch(threadId);

      if (!thread.isThread()) {
        throw new Error('O canal fornecido não é uma thread.');
      }

      await thread.leave();
      console.log(`Saiu da thread: ${thread.name}`);
    } catch (error) {
      console.error('Erro ao sair da thread:', error);
    }
  }
}

module.exports = ThreadManager;