”LoginFailure: Improper token has been passed” / TOKEN_INVALID
Was es bedeutet: die Bibliothek lehnt das Token ab, mit dem du dich anmeldest (discord.js wirftLoginFailure/“An invalid token was provided”; andere Stacks liefern einen 401 TOKEN_INVALID).
Warum es passiert:
- Das Token wurde im Discord Developer Portal neu generiert oder widerrufen. Ein neu generiertes Token macht das alte überall dort, wo es verwendet wird, sofort ungültig.
- Der Token-String enthält versehentlich zusätzliche Leerzeichen oder Anführungszeichen.
- Der Code liest die falsche Umgebungsvariable.
- Gehe zum Developer Portal → deine Anwendung → Bot → Reset Token.
- Aktualisiere das Token in den Umgebungsvariablen dieser Anwendung im Square Cloud Dashboard. Committe das Token nie in einer Datei, die in der
.ziphochgeladen wird. - Prüfe, dass keine überflüssigen Leerzeichen oder Anführungszeichen um den Wert stehen.
- Aktualisiere die Bibliothek (
discord.js@latestoderpip install -U discord.py). - Starte die Anwendung neu.
”Used disallowed intents” / Message Content Intent
Was es bedeutet: der Bot meldet sich an und erscheint online, ignoriert aber jede Nachricht, oder die Gateway-Verbindung wird mit “used disallowed intents” abgelehnt. Warum es passiert: seit 2022 ist Message Content ein privilegierter Intent. Ohne ihn an beiden Stellen explizit zu aktivieren, kommt der Nachrichteninhalt leer an (oder die Gateway-Verbindung wird verweigert, wenn dein Code einen Intent deklariert, der für die App nicht aktiviert ist). So behebst du es, an beiden Stellen:- Discord Developer Portal → deine Anwendung → Bot → Privileged Gateway Intents → aktiviere Message Content Intent.
- Deklariere ihn auch im Code:
- Starte die Anwendung neu.
Sobald ein Bot 100 Server überschreitet, erfordern privilegierte Intents (einschließlich Message Content) zusätzlich eine Genehmigung von Discord, die über dieselbe Developer-Portal-Seite beantragt wird.
Lavalink-Verbindung mit Code 1006 geschlossen
Was es bedeutet: der Lavalink-Client des Bots schließt den WebSocket abnormal mit Code 1006, oft vorangegangen von “Unexpected server response: 400”. Warum es passiert: dies ist eine Versionsinkompatibilität. Lavalink v4 ist REST-basiert und inkompatibel mit einem Client-Wrapper, der für v3 gebaut wurde, sodass der Handshake fehlschlägt und der Socket mit 1006 schließt. So behebst du es:- Gleiche die Version des Lavalink-Client-Wrappers deines Bots mit der Hauptversion des Lavalink-Servers ab (v3-Client mit v3-Server, v4-Client mit v4-Server).
- Auf Square Cloud bindet der Lavalink-Server selbst an Port
80, aber dein Bot muss sich über den Edge auf Port443mitsecure: trueverbinden. - Starte sowohl die Lavalink-Anwendung als auch die Bot-Anwendung neu, nachdem du die Versionsinkompatibilität behoben hast.
Bot geht offline, nachdem er lokal funktioniert hat
Was es bedeutet: der Bot meldet sich einwandfrei an, wenn du ihn auf deinem Rechner ausführst, geht aber offline (oder startet wiederholt neu), sobald er deployt ist. Warum es meistens passiert:- Eine instabile Verbindung auf Gateway-Ebene ohne Reconnect-Handling.
- Widersprüchliche oder inkompatible Abhängigkeitsversionen zwischen dem, was du lokal getestet hast, und dem, was in deiner Abhängigkeitsdatei steht.
- Auslöser für Discord-API-Missbrauch (ein Konto erhält in diesem Fall eine Benachrichtigungs-E-Mail) durch zu aggressives Erreichen von Rate Limits.
- Prüfe zuerst die Logs der Anwendung im Dashboard, sie zeigen den tatsächlichen Absturzgrund.
- Füge Error-Handler hinzu, damit ein vorübergehender Fehler den Prozess nicht abstürzen lässt:
process.on("unhandledRejection", ...)undclient.on("error", ...)in discord.js, entsprechendes Handling in discord.py. - Square Cloud startet eine abgestürzte App automatisch neu (
AUTORESTARTim Manifest), wenn die vorherige Uptime über 60 Sekunden lag, der Exit-Status 1 war und in den letzten 60 Minuten kein Auto-Restart erfolgt ist. Das hält den Bot durch vorübergehende Fehler am Leben, behebt aber nie einen zugrunde liegenden Codefehler, Syntaxfehler oder eine fehlende Abhängigkeit, diese benötigen weiterhin eine Korrektur im Code. - Achte auf Discord-API-Rate-Limits (429): das globale Limit liegt bei etwa 50 Anfragen/Sekunde pro Bot-Token, mit engeren Limits pro Route (Kanal erstellen/bearbeiten erlaubt etwa 2 Änderungen pro 10 Minuten pro Kanal). Cache aggressiv, verwende eine asynchrone Queue, die die Header
X-RateLimit-Remaining/X-RateLimit-Reset-Afterrespektiert, und nutze Webhooks für Massenversand.

