> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Errori dei bot Discord su Square Cloud: LoginFailure, Intent non consentiti, Lavalink 1006

> Risolvi LoginFailure Improper token has been passed, TOKEN_INVALID, Used disallowed intents, Message Content Intent, Lavalink connection closed with code 1006 e bot Discord che vanno offline su Square Cloud.

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](https://discord.com/developers/applications) → la tua applicazione → **Bot** → **Reset 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.

<Warning>Non inserire mai il token del tuo bot direttamente nei file sorgente. Leggilo sempre da una variabile d'ambiente impostata nella dashboard.</Warning>

## "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 → **Bot** → **Privileged Gateway Intents** → abilita **Message Content Intent**.
2. Dichiaralo anche nel codice:

```javascript theme={null}
// discord.js
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
  ],
});
```

```python theme={null}
# discord.py
intents = discord.Intents.default()
intents.message_content = True
client = commands.Bot(command_prefix="!", intents=intents)
```

3. Riavvia l'applicazione.

<Note>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.</Note>

## Connessione Lavalink chiusa con codice 1006

**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](/it/tutorials/how-to-create-your-lavalink-server).

## 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](/it/tutorials/bots/discord) per la configurazione da zero.

<Tip>Se i log non indicano una causa chiara, il nostro team di supporto può aiutarti ad approfondire.</Tip>

## Contattaci

Se continui a riscontrare **difficoltà tecniche**, il nostro **team di supporto specializzato** è disponibile ad assisterti. [**Contattaci**](https://squarecloud.app/it/support) 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**](https://www.trustpilot.com/review/squarecloud.app) su Google e Trustpilot.
