Vai al contenuto principale
Gli errori dei bot Discord su Square Cloud di solito derivano dal token, dagli intent del gateway o da un’incompatibilità di versione con Lavalink. Trova la corrispondenza con il messaggio esatto qui sotto.

”LoginFailure: Improper token has been passed” / TOKEN_INVALID

Cosa significa: la libreria rifiuta il token con cui stai effettuando il login (discord.js lancia LoginFailure/“An invalid token was provided”; altri stack restituiscono un TOKEN_INVALID 401). Perché accade:
  • Il token è stato rigenerato o revocato nel Discord Developer Portal. Generare un nuovo token invalida istantaneamente quello vecchio ovunque venga usato.
  • La stringa del token ha spazi o virgolette extra copiati per errore.
  • Il codice sta leggendo la variabile d’ambiente sbagliata.
Come risolvere:
  1. Vai al Developer Portal → la tua applicazione → BotReset Token.
  2. Aggiorna il token nelle Variabili d’ambiente di questa applicazione nella dashboard di Square Cloud. Non fare mai commit del token in un file che viene caricato nello .zip.
  3. Controlla che non ci siano spazi o virgolette estranei intorno al valore.
  4. Aggiorna la libreria (discord.js@latest oppure pip install -U discord.py).
  5. Riavvia l’applicazione.
Non inserire mai il token del tuo bot direttamente nei file sorgente. Leggilo sempre da una variabile d’ambiente impostata nella dashboard.

”Used disallowed intents” / Message Content Intent

Cosa significa: il bot effettua il login e appare online, ma ignora ogni messaggio, oppure il gateway rifiuta la connessione con “used disallowed intents”. Perché accade: dal 2022, Message Content è un intent privilegiato. Senza averlo abilitato esplicitamente in entrambi i punti, il contenuto dei messaggi arriva vuoto (oppure la connessione al gateway viene rifiutata se il tuo codice dichiara un intent non abilitato per l’app). Come risolvere, in entrambi i punti:
  1. Discord Developer Portal → la tua applicazione → BotPrivileged Gateway Intents → abilita Message Content Intent.
  2. Dichiaralo anche nel codice:
  1. Riavvia l’applicazione.
Una volta che un bot supera i 100 server, gli intent privilegiati (incluso Message Content) richiedono anche l’approvazione di Discord, richiedibile dalla stessa pagina del Developer Portal.
Cosa significa: il client Lavalink del bot chiude il WebSocket in modo anomalo con codice 1006, spesso preceduto da “Unexpected server response: 400”. Perché accade: si tratta di un’incompatibilità di versione. Lavalink v4 è basato su REST ed è incompatibile con un wrapper client costruito per v3, quindi l’handshake fallisce e il socket si chiude con 1006. Come risolvere:
  1. Allinea la versione del wrapper client Lavalink del tuo bot con la versione principale del server Lavalink (client v3 con server v3, client v4 con server v4).
  2. Su Square Cloud, il server Lavalink stesso è collegato alla porta 80, ma il tuo bot deve connettersi tramite l’edge sulla porta 443 con secure: true.
  3. Riavvia sia l’applicazione Lavalink che l’applicazione del bot dopo aver risolto l’incompatibilità di versione.
Per la configurazione completa dell’hosting di Lavalink (file di configurazione, porta, deploy), consulta il tutorial sul server Lavalink.

Il bot va offline dopo aver funzionato in locale

Cosa significa: il bot effettua il login correttamente quando lo esegui sulla tua macchina, ma va offline (o si riavvia ripetutamente) una volta effettuato il deploy. Perché accade, più comunemente:
  • Una connessione instabile a livello di gateway senza gestione della riconnessione.
  • Versioni delle dipendenze in conflitto o incompatibili tra quello che hai testato in locale e quello che è nel tuo file delle dipendenze.
  • Trigger di abuso dell’API di Discord (in questo caso l’account riceve un’email di notifica) dovuti a un uso troppo aggressivo dei rate limit.
Come risolvere:
  1. Controlla prima i log dell’applicazione nella dashboard, mostrano il motivo reale del crash.
  2. Aggiungi error handler in modo che un errore transitorio non faccia crashare il processo: process.on("unhandledRejection", ...) e client.on("error", ...) in discord.js, gestione equivalente in discord.py.
  3. Square Cloud riavvia automaticamente un’app in crash (AUTORESTART nel manifest) quando l’uptime precedente è stato superiore a 60 secondi, lo stato di uscita era 1, e non si è auto-riavviata negli ultimi 60 minuti. Questo mantiene il bot vivo attraverso errori transitori, ma non risolve mai un errore di codice sottostante, un errore di sintassi o una dipendenza mancante, quelli richiedono comunque una correzione nel codice.
  4. Fai attenzione ai rate limit dell’API di Discord (429): il limite globale è di circa 50 richieste/secondo per token del bot, con bucket per-route più stretti (creazione/modifica canale consente circa 2 modifiche ogni 10 minuti per canale). Usa la cache in modo aggressivo, usa una coda asincrona che rispetti gli header X-RateLimit-Remaining/X-RateLimit-Reset-After, e usa i webhook per gli invii di massa.
Consulta il tutorial completo sull’hosting dei bot Discord per la configurazione da zero.
Se i log non indicano una causa chiara, il nostro team di supporto può aiutarti ad approfondire.

Contattaci

Se continui a riscontrare difficoltà tecniche, il nostro team di supporto specializzato è disponibile ad assisterti. Contattaci e saremo felici di aiutarti a risolvere qualsiasi problema — la qualità del supporto è una parte importante del motivo per cui gli sviluppatori valutano Square Cloud 4,9/5 su 402 recensioni su Google e Trustpilot.