Discord-Rate-Limit: Warum Bots ausgebremst werden
Ein Rate-Limit ist Discords Obergrenze dafür, wie viele Anfragen ein Bot oder Nutzer in kurzer Zeit senden kann. Überschreitet ein Bot das Limit, antwortet Discord mit einem HTTP-429-Fehler und einer Wartezeit, und der Bot muss vor dem nächsten Versuch pausieren.
So werden Limits angewendet
Jede Aktion eines Bots ist eine Anfrage an die Discord-API: eine Nachricht senden, eine Rolle vergeben, einen Kanal bearbeiten. Discord zählt Anfragen in Gruppen, meist pro Route und manchmal pro Server oder Kanal. Für einen Bot gibt es außerdem eine globale Grenze von etwa 50 Anfragen pro Sekunde.
Antworten enthalten Header, die zeigen, wie viele Anfragen noch übrig sind und wann die Gruppe zurückgesetzt wird. Ein gut programmierter Bot liest diese Werte und bremst ab, bevor er blockiert wird. Überschreitet er das Limit trotzdem, enthält die 429-Antwort einen Retry-After-Wert mit der Anzahl Sekunden, die er warten muss.
Warum du sie bemerkst
- Massenaktionen wie das Löschen vieler Nachrichten oder das Ändern vieler Rollen werden absichtlich verlangsamt.
- Wenn du einen Kanalnamen oder das Thema in kurzer Zeit mehrfach änderst, wird das pro Kanal begrenzt.
- Viele Reaktionen oder Nachrichten in schnellen Schüben lösen kurze Pausen aus.
Für ein Mitglied wirkt das wie ein Bot, der verspätet antwortet, nicht wie ein Fehler. Das System macht dabei nur seine Arbeit.
Die ernste Variante: temporäre Sperren
Wenn eine App zu viele fehlerhafte Anfragen stellt, zum Beispiel Tausende 401-, 403- oder 429-Antworten in zehn Minuten, kann Discord ihre IP-Adresse für eine Weile auf Cloudflare-Ebene sperren. Ein Bot auf einem geteilten Server kann dann ausfallen, obwohl mit deinem Server alles in Ordnung ist. Dann hilft nur Warten.
Versuche niemals, Rate-Limits mit zusätzlichen Konten oder Skripten zu umgehen. Sie schützen die Plattform, und ein Umgehungsversuch riskiert eine Sperre.
Was du als Besitzer tun kannst
- Verteile große Aufgaben, statt alles auf einmal laufen zu lassen.
- Ändere Kanalnamen nicht im Minutentakt.
- Bevorzuge Bots, die ihre Anfragen in eine Warteschlange stellen und die Limits respektieren.
Rate-Limits und Noxyr
Die Server-Logs von Noxyr werden pro Kanal höchstens alle paar Sekunden gesendet, jeweils mit bis zu zehn Einträgen. So flutet ein Raid oder eine große Bereinigung den Log-Kanal nicht, wie in den Docs zu den Server-Logs beschrieben. Auch das Senden von Live-Chat-Nachrichten bei Noxyr ist begrenzt, um Floods zu verhindern. Für Custom Bots gilt eine verwandte Regel: Jeder Wechsel auf einen neuen Host ist ein neuer Discord-Login, deshalb gibt es zwischen den Wechseln eine Wartezeit von fünf Minuten, siehe Custom-Bot-Hosting.
Rate-Limits zwingen große Bots außerdem, sich auf mehrere Verbindungen zu verteilen, siehe Sharding. Wenn dein Bot hängen wirkt, prüfe zuerst die Seite Status und Ping.
Häufige Fragen
Was bedeutet HTTP 429 bei Discord?
Zu viele Anfragen. Discord fordert den Bot auf, die Zeit im Retry-After-Wert abzuwarten, bevor er es erneut versucht.
Ist ein Rate-Limit eine Sperre?
Nein. Es ist eine kurze Pause. Nur wiederholter Missbrauch kann zu einer längeren temporären Sperre führen.
Warum reagiert mein Bot bei einer großen Bereinigung langsam?
Massenaktionen sind von Discord rate-limitiert, deshalb muss ein Bot sie verteilen.