Skip to main content
Discord-Bot-Fehler auf Square Cloud lassen sich meist auf das Token, die Gateway-Intents oder eine Versionsinkompatibilität mit Lavalink zurückführen. Finde die genaue Meldung unten.

”LoginFailure: Improper token has been passed” / TokenInvalid

Was es bedeutet: Discord hat das Token abgelehnt, mit dem sich dein Bot anmeldet. Die genaue Meldung hängt von der Bibliothek ab:
  • discord.py: discord.errors.LoginFailure: Improper token has been passed.
  • discord.js v14: Error [TokenInvalid]: An invalid token was provided.
  • ältere discord.js-Versionen: Error [TOKEN_INVALID]: An invalid token was provided.
  • andere Bibliotheken: ein HTTP-401 Unauthorized bei der Anmeldung.
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, oder die Variable ist auf Square Cloud nicht gesetzt.
So behebst du es:
  1. Gehe zum Developer Portal → deine Anwendung → Bot → Reset Token.
  2. Aktualisiere das Token in den Umgebungsvariablen der Anwendung (im Dashboard unter Einstellungen → Umgebungsvariablen oder mit squarecloud app env set). Committe das Token nie in einer Datei, die in der ZIP-Datei hochgeladen wird.
  3. Prüfe, dass keine überflüssigen Leerzeichen oder Anführungszeichen um den Wert stehen.
  4. Aktualisiere die Bibliothek (discord.js@latest oder pip install -U discord.py).
  5. Starte die Anwendung neu, damit sie den neuen Wert lädt.
Hardcode dein Bot-Token niemals in Quelldateien. Lies es immer aus einer im Dashboard gesetzten Umgebungsvariable.

”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:
  1. Discord Developer Portal → deine Anwendung → Bot → Privileged Gateway Intents → aktiviere Message Content Intent.
  2. Deklariere ihn auch im Code:
  1. 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.
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:
  1. 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).
  2. Auf Square Cloud bindet der Lavalink-Server selbst an Port 80, aber dein Bot muss sich über den Edge auf Port 443 mit secure: true verbinden.
  3. Starte sowohl die Lavalink-Anwendung als auch die Bot-Anwendung neu, nachdem du die Versionsinkompatibilität behoben hast.
Das vollständige Setup für Lavalink-Hosting (Konfigurationsdatei, Port, Deployment) findest du im Lavalink-Server-Tutorial.

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.
  • Der Bot wurde gestoppt, weil er seinen RAM oder seine CPU überschritten oder die Discord-API überflutet hat. In diesem Fall zeigen die Logs eine Zeile [SQUARE-SHIELD], und du erhältst eine E-Mail: siehe die Statustabelle.
So behebst du es:
  1. Prüfe zuerst die Logs der Anwendung im Dashboard, sie zeigen den tatsächlichen Absturzgrund.
  2. Füge Error-Handler hinzu, damit ein vorübergehender Fehler den Prozess nicht abstürzen lässt: process.on("unhandledRejection", ...) und client.on("error", ...) in discord.js, entsprechendes Handling in discord.py.
  3. Füge AUTORESTART=true zu deiner squarecloud.app hinzu, damit Square Cloud den Bot nach einem Absturz neu startet. Standardmäßig ist das ausgeschaltet, und der Neustart erfolgt nur in den Fällen, die unter AUTORESTART aufgeführt sind. Das hält den Bot bei vorübergehenden Fehlern am Leben, behebt aber nie ein ungültiges Token, einen Syntaxfehler oder eine fehlende Abhängigkeit: Diese brauchen weiterhin eine Korrektur im Code.
  4. 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-After respektiert, und nutze Webhooks für Massenversand. Ein Bot, der Discord weiter überflutet, wird mit ABUSE_REQUESTS gestoppt.

Weiterführende Anleitungen

Wenn die Logs auf keine eindeutige Ursache hinweisen, kann dir unser Support-Team beim weiteren Nachforschen helfen.

Kontaktiere uns

Falls du weiterhin technische Schwierigkeiten hast, steht dir unser spezialisiertes Support-Team zur Verfügung. Kontaktiere uns und wir helfen dir gerne, jedes Problem zu lösen: die Qualität unseres Supports ist ein wichtiger Grund, warum Entwickler Square Cloud mit 4,9/5 bei 402 Bewertungen auf Google und Trustpilot bewerten.