Zrzur Entwickler

Fehler

Jeder Fehlertyp, den die API liefern kann, mit Ursache und Lösung.

Fehlerformat

Jeder Fehler ist JSON mit type, manchmal mit weiteren Feldern:

{ "type": "MissingPermission", "permission": "ManageMessages" }
{ "type": "FailedValidation", "error": "content: length must be between 0 and 2000" }
{ "type": "FileTooLarge", "max": 20000000 }

Entscheide nach type, nie nach dem Text. Typen sind stabil: Sie werden nie umbenannt oder entfernt. Neue können in neueren Servern auftauchen, also behandle einen unbekannten Typ wie einen allgemeinen Fehler.

Was tun mit einem Fehler

StatusBedeutungWas zu tun ist
400, 422Die Anfrage ist falschKorrigiere sie. Dieselbe Anfrage scheitert wieder
401Das Token ist falschStoppe den Bot und prüfe das Token
403Der Bot darf das nichtSage es der Person. Nicht wiederholen
404Es ist wegVergiss es
409Ein KonfliktHole den aktuellen Stand
429Zu viele AnfragenSiehe Ratenlimits
5xxUnsere Seite ist gescheitertWiederhole mit wachsender Pause, drei- bis fünfmal

Fehler des Webservers selbst (kein Token, unbekannte Route, kein JSON im Text) sind ebenfalls JSON. Prüfe den Status, bevor du den Text parst, denn ein Proxy dazwischen kann noch mit HTML antworten.

Ist der Bot auf diesem Server?

Ein Bot sieht nur die Server, auf denen er installiert wurde. Für einen Server, auf dem er nicht ist, unterscheiden sich die Antworten je nach Route:

AufrufAntwort
GET /servers/{target}404 NotFound
GET /channels/{target} für einen seiner Kanäle404 NotFound
POST /channels/{target}/messages für einen seiner Kanäle403 MissingPermission

Ein 403 MissingPermission beim Schreiben in einen Kanal, dessen ID jemand deinem Bot gegeben hat, kann also heißen, dass der Bot dort nicht installiert ist. Frage GET /channels/{target}: 404 NotFound heißt, der Bot ist nicht auf diesem Server (oder den Kanal gibt es nicht), installiere ihn also zuerst, mit dem Einladungslink aus dem Entwicklerportal. Ein 403 MissingPermission dort heißt, der Bot ist auf dem Server und sieht den Kanal nicht: Ein privater Kanal braucht „Kanal sehen“ für eine der Rollen des Bots.

Fehler, die ein Bot bekommen kann

TypeHTTPUrsacheLösung
UnknownUser404Den Benutzer gibt es nicht, oder der Bot sieht ihn nicht.Prüfe die ID. Vielleicht wurde das Konto gelöscht.
DirectMessagesRestricted403Die Privatsphäre-Einstellungen der Person lehnen diese Direktnachricht ab.Nicht wiederholen. Schreibe in einem Serverkanal.
DirectMessagesPaused403Der Server hat Direktnachrichten unter Mitgliedern pausiert.Nicht wiederholen. Die Moderation hebt die Pause auf.
BlockedByOther403Die Person hat den Bot blockiert.Nicht wiederholen.
OfficialAccount403Einem offiziellen Zrzur-Konto kann man nicht antworten, nicht reagieren, und man kann es weder anpinnen noch melden.Nicht wiederholen.
UnknownChannel404Der Kanal ist weg, oder der Bot sieht ihn nicht.Prüfe die ID und ob der Bot „Kanal sehen“ hat.
UnknownMessage404Die Nachricht ist weg oder nicht in diesem Kanal.Behandle sie als gelöscht.
UnknownAttachment400Eine Datei-ID gibt es nicht, oder sie wurde schon benutzt.Lade die Datei neu hoch. Jeder Upload geht einmal.
CannotDeleteMessage403Die Nachricht lässt sich nicht löschen, etwa weil diese Interaktion sie nicht erstellt hat.Lösche nur, was dein Bot schrieb, oder hole dir „Nachrichten verwalten“.
CannotEditMessage403Ein Bot bearbeitet nur eigene Nachrichten.Sende eine neue Nachricht.
CannotJoinCall400Der Kanal nimmt keine Anrufe an.Nutze einen Sprachkanal.
TooManyAttachments400Die Nachricht hat mehr Dateien als max.Sende die Dateien in mehreren Nachrichten.
TooManyEmbeds400Die Nachricht hat mehr Embeds als max.Sende weniger Embeds.
TooManyReplies400Die Nachricht antwortet auf mehr Nachrichten als max.Antworte auf weniger Nachrichten.
TooManyChannels400Der Server hat sein Kanal-Limit max erreicht.Lösche zuerst einen Kanal.
TooManyChannelWebhooks400Der Kanal hat sein Webhook-Limit erreicht.Lösche einen Webhook in diesem Kanal.
TooManyServerWebhooks400Der Server hat sein Webhook-Limit erreicht.Lösche einen Webhook auf diesem Server.
RateLimited429Ein Webhook hat zu viel gesendet. Der Text hat retry_after in Millisekunden.Warte so lange und sende dann erneut.
ForumThreadRequired400Ein Webhook hat ohne Thread in ein Forum gepostet.Sende thread_id, oder thread_name für einen neuen Thread.
ThreadsDisabled403Der Server hat Threads ausgeschaltet. Was da ist, bleibt lesbar.Nicht erneut versuchen. Nur der Server kann sie wieder einschalten.
ForumsDisabled403Der Server hat Foren ausgeschaltet. Was da ist, bleibt lesbar.Nicht erneut versuchen. Nur der Server kann sie wieder einschalten.
PluginsDisabled403Plugins sind auf diesem Server ausgeschaltet. Solange sie aus sind, antwortet keine Plugin-Route.Nicht erneut versuchen. Plugins kommen erst zurück, wenn der Server sie einschaltet.
EmptyMessage422Die Nachricht hat weder Inhalt noch Embeds, Anhänge oder Komponenten.Sende etwas.
PayloadTooLarge422Die Nachricht ist über einem Größenlimit.Kürze Text oder Embeds.
AlreadyPinned400Die Nachricht ist schon angeheftet.Ignoriere es.
NotPinned400Die Nachricht ist nicht angeheftet.Ignoriere es.
InSlowmode429Der Kanal hat langsamen Modus, und der Bot schrieb zu früh. Der Text hat retry_after.Warte, oder gib dem Bot „Langsamen Modus umgehen“. Das ist eine Ablehnung, kein Ratenlimit.
UnknownServer404Den Server gibt es nicht, oder der Bot ist nicht dort.Prüfe die ID. Vergiss einen Server bei ServerDelete.
InvalidRole404Die Rolle gibt es auf diesem Server nicht.Hole die Rollen neu.
Banned403Dieser Benutzer ist vom Server gebannt.Die Moderation hebt den Bann zuerst auf.
AlreadyInServer409Der Bot ist schon auf diesem Server.Nichts zu tun.
CannotTimeoutYourself400Ziel des Timeouts ist der Bot selbst.Wähle ein anderes Mitglied.
TooManyEmoji400Der Server hat sein Emoji-Limit max erreicht.Lösche zuerst ein Emoji.
TooManyRoles400Der Server hat sein Rollen-Limit max erreicht.Lösche zuerst eine Rolle.
UnknownApplication404Die Anwendung gibt es nicht.Prüfe die ID: Eine Anwendungs-ID ist die Benutzer-ID des Bots.
ApplicationNotInstalled403Jemand hat einen Bot benutzt, der nicht auf diesem Server ist.Installiere den Bot auf dem Server.
ApplicationOffline503Der Bot wurde gesperrt oder abgeschaltet und bekommt nichts mehr.Seine Eigentümerin wendet sich an den Zrzur-Support.
SignedDeliveryRejected400Deine Adresse für HTTP-Interaktionen hat den Test nicht bestanden. reason sagt, warum.Siehe Interaktionen über HTTP.
UnknownCommand404Die Befehls-ID ist unbekannt, oder der Befehl wurde gelöscht.Hole die Befehlsliste.
CommandAlreadyExists409In diesem Bereich gibt es schon einen Befehl mit diesem Namen und Typ.Ersetze die Liste mit PUT, oder bearbeite den Befehl.
TooManyCommands400Das Limit von max Befehlen dieses Typs in einem Bereich ist erreicht.Lösche zuerst Befehle.
UnknownInteraction404Interaktions-ID oder Token sind falsch.Nutze die Werte aus InteractionCreate unverändert.
InteractionExpired410Die 3 Sekunden zum Bestätigen oder die 15 Minuten des Tokens sind vorbei.Bestätige schneller. Nutze DeferredMessage für langsame Arbeit.
InteractionAlreadyAcknowledged409Diese Interaktion hat schon ihre erste Antwort.Nutze eine Folgenachricht, oder bearbeite das Original.
TooManyFollowups400Das Limit von max Folgenachrichten pro Interaktion ist erreicht.Bearbeite eine Nachricht, oder sende eine normale.
IsBot400Diese Route ist für Menschen. Bots werden abgelehnt.Löse es anders. Die Referenz zeigt, was Bots nutzen können.
BotIsPrivate403Nur der Eigentümer installiert einen privaten Bot.Melde dich als Eigentümer an, oder mache den Bot öffentlich.
MissingPermission403Dem Bot fehlt die Berechtigung aus permission.Gib dem Bot die Berechtigung, oder sage es der Person.
MissingUserPermission403Der Person, für die der Bot handelt, fehlt die Berechtigung aus permission.Sage es der Person.
MissingIntent403Route oder Verbindung braucht den Intent aus intent.Schalte ihn im Entwicklerportal ein und fordere ihn beim Verbinden an.
MasqueradeNameTaken400Der Maskenname kopiert ein anderes Mitglied.Wähle einen anderen Namen.
BotNeedsVerification403Ein unbestätigter Bot stoppt bei 100 Servern.Beantrage die Bestätigung.
VerificationRequired403Die Verifizierungsstufe des Servers lehnt dieses Mitglied vorerst ab. requirement sagt, warum.Warte, oder frage die Moderation.
AutoModBlocked403Die AutoMod-Regel rule hat die Nachricht abgelehnt.Ändere den Text. Wiederhole nicht denselben.
RulesNotAccepted403Das Mitglied hat die Serverregeln nicht akzeptiert.Sage ihm, dass es sie akzeptieren soll.
InvitesPaused403Der Server hat Einladungen pausiert.Nicht wiederholen. Die Moderation hebt die Pause auf.
NotElevated403Das Ziel steht gleich hoch oder höher als der Bot, oder die Rolle über seiner höchsten.Setze die Rolle des Bots höher.
NotPrivileged403Der Rang des Bots ist für diese Änderung zu niedrig.Setze die Rolle des Bots höher.
CannotGiveMissingPermissions403Der Bot wollte eine Berechtigung geben, die er selbst nicht hat.Gib dem Bot die Berechtigung zuerst.
NotOwner403Das darf nur der Eigentümer.Frage den Eigentümer.
IsElevated403Das Ziel steht dafür zu hoch.Wähle ein niedrigeres Ziel.
InternalError500Auf dem Server ist etwas schiefgegangen.Warte und wiederhole mit wachsender Pause. Melde es, wenn es bleibt.
InvalidOperation400Die Anfrage passt nicht zum Zustand, etwa Modal als Antwort auf ein Formular.Prüfe die Regeln dieser Route.
InvalidCredentials401Token, Passwort oder Ticket sind falsch.Prüfe sie.
InvalidProperty400Diese Feldkombination ist hier nicht erlaubt.Prüfe den Anfragetext.
InvalidSession401Das Token fehlt oder ist falsch, oder der Bot wurde gesperrt.Stoppe und prüfe das Token. Wiederholen hilft nicht.
NotAuthenticated401Die Route braucht ein Token und hat keins bekommen.Sende x-bot-token.
DuplicateNonce409Dieselbe nonce wurde für eine andere Anfrage benutzt.Nimm für jede neue Nachricht einen neuen Wert.
NotFound404Route oder Objekt gibt es nicht.Prüfe Pfad und IDs.
NoEffect400Die Anfrage ändert nichts.Ignoriere es.
FailedValidation400Der Text verletzt ein Limit oder eine Regel. error sagt, welche, und fields nennt jedes Feld mit seiner Regel.Korrigiere den Text. Wiederhole nicht dieselbe Anfrage.
LiveKitUnavailable400Sprache ist auf diesem Server nicht verfügbar.Versuche es später.
NotAVoiceChannel400Der Kanal ist kein Sprachkanal.Nutze einen Sprachkanal.
AlreadyConnected400Der Bot ist schon in diesem Sprachkanal.Trenne zuerst die Verbindung.
NotConnected400Das Mitglied ist in keinem Sprachkanal.Prüfe zuerst die Sprachstatus.
UnknownNode400Den Sprachknoten gibt es nicht.Nimm einen Namen aus features.livekit.nodes von GET /.
FeatureDisabled400Die Funktion aus feature ist auf diesem Server aus.Nicht wiederholen. Selbst gehostete Server schalten sie in ihrer Konfiguration ein.
HeaderTooLarge400Ein Header ist zu groß, etwa der Grund fürs Audit-Log.Kürze ihn.
ProxyError400Der Link- oder Medien-Proxy konnte die Adresse nicht laden.Prüfe, ob die Adresse öffentlich ist.
FileTooSmall422Die hochgeladene Datei ist leer.Sende eine Datei mit Inhalt.
FileTooLarge422Die Datei ist über dem Limit max ihres Tags.Sende eine kleinere Datei.
FileTypeNotAllowed400Dieser Tag nimmt nur Bilder.Sende ein Bild, oder nutze attachments.
ImageProcessingFailed500Das Bild ließ sich nicht lesen.Sende ein gültiges Bild.
NoEmbedData400Der Link hat keine Vorschaudaten.Ignoriere es.
MissingHeaders400Ein nötiger Header fehlt.Sende x-bot-token, und content-type bei einem Text.
OperationFailed500Die Aktion ließ sich nicht abschließen.Wiederhole einmal, später.
IncorrectData400Die gespeicherten Daten passen nicht. with nennt sie.Hole das Objekt neu.
DatabaseError500Ein Datenbankaufruf ist auf dem Server fehlgeschlagen.Warte und wiederhole mit wachsender Pause.
VosoUnavailable400Der alte Sprachdienst ist nicht verfügbar.Nutze LiveKit.
RenderFail500Der Server konnte eine Vorlage nicht erzeugen.Versuche es später.
LabelMe500Ein Serverfehler ohne Bezeichnung.Versuche es später. Melde es, wenn es bleibt.
ContactSupport400Der Server möchte, dass sich jemand an den Support wendet. msg sagt, warum.Zeige die Nachricht dem Eigentümer.
InvalidFlagValue400Ein Flag hat einen Wert, den der Server nicht kennt.Prüfe die Flags.
TooManySounds400Das Soundboard des Servers ist voll.Entferne zuerst einen Sound. max ist die Grenze.
SoundAlreadyAdded409Dieser Sound aus der Bibliothek ist schon auf dem Soundboard des Servers.Nichts zu tun.
SoundLibraryUnavailable503Die Sound-Bibliothek ist noch nicht bereit.Versuche es in einer Minute erneut.
TooManySpeakers400Die Bühne hat so viele Sprecher, wie sie haben darf.Setze zuerst einen Sprecher zurück ins Publikum. max ist die Grenze.
PollEnded409Die Umfrage ist vorbei: keine Stimmen mehr, und sie lässt sich nicht noch einmal beenden.Nicht wiederholen.

Fehler von Konto-Routen

Bots sehen diese selten. Sie gehören zu Routen für Menschen, etwa zum Anmelden.

TypeHTTPUrsacheLösung
AlreadyOnboarded403Das Konto hat schon einen Benutzernamen.Nur für die App.
AgeNotDeclared403Das Konto hat sein Alter nicht angegeben.Nur Menschen: in der App abschließen.
UsernameTaken409Der Benutzername ist vergeben.Wähle einen anderen Namen.
InvalidUsername400Der Benutzername enthält unerlaubte Zeichen.Nutze Buchstaben, Ziffern, ., - und _.
DiscriminatorChangeRatelimited429Die Namensnummer wurde gerade erst geändert.Warte.
AlreadyFriends409Die Benutzer sind schon befreundet.Bots haben keine Freunde.
AlreadySentRequest409Eine Freundschaftsanfrage läuft.Bots haben keine Freunde.
Blocked409Der Benutzer ist blockiert.Nur Menschen.
NotFriends403Das braucht eine Freundschaft.Bots haben keine Freunde.
GroupInvitesRestricted403Die Person lehnt Gruppeneinladungen ab.Nur Menschen.
TooManyPendingFriendRequests400Zu viele offene Freundschaftsanfragen.Nur Menschen.
CannotRemoveYourself400Der Gruppeneigentümer kann sich nicht selbst entfernen.Nur Menschen.
GroupTooLarge403Die Gruppe ist voll.Nur Menschen.
AlreadyInGroup409Der Benutzer ist schon in der Gruppe.Nur Menschen.
NotInGroup404Der Benutzer ist nicht in der Gruppe.Nur Menschen.
CantCreateServers403Dieses Konto kann keine Server erstellen, Bots nie.Erstelle den Server als Mensch.
TooManyServers400Das Konto hat sein Server-Limit erreicht.Verlasse zuerst einen Server.
VanityUnavailable403Der Server kann keine eigene Adresse haben.Nur Menschen.
VanityTaken409Die eigene Adresse ist vergeben.Wähle eine andere.
VanityReserved400Die eigene Adresse ist reserviert.Wähle eine andere.
VanityPaused410Die eigene Adresse ist pausiert.Frage den Support.
TooManyCommunityItems400Das Limit an Einträgen ist erreicht.Nicht für Bots.
MissingPlatformPermission403Das braucht eine Berechtigung des Zrzur-Teams.Nicht für Bots.
ProfileTextFiltered422Der Plattformfilter hat diesen Text gestoppt.Ändere den Text oder bitte im Support um eine Prüfung.
CommunityItemConflict409Der Galerie-Eintrag hat sich inzwischen geändert.Nicht für Bots.
TooManyReports429Zu viele Meldungen in kurzer Zeit.Warte.
SafetyCaseConflict409Der Sicherheitsfall hat sich inzwischen geändert.Nicht für Bots.
TooManySupercharges400Das Limit an Wings ist erreicht.Nicht für Bots.
TooManyBotCreations429Das Konto hat in den letzten 7 Tagen 7 Bots erstellt.Warte bis resets_at und erstelle den Bot dann.
PromotionSlotsFull409Alle Werbeplätze sind belegt.Nicht für Bots.
NotOnDiscover400Der Server ist nicht in Entdecken.Nicht für Bots.
ReachedMaximumBots400Das Konto hat sein Bot-Limit erreicht.Lösche zuerst einen alten Bot.
IsNotBot400Diese Route ist für Bots.Sende x-bot-token.
CannotReportYourself400Man kann sich nicht selbst melden.Nicht für Bots.
CaptchaFailed400Das Captcha ist fehlgeschlagen.Nur Menschen.
BlockedByShield400Der Anmeldeschutz hat die Anfrage abgelehnt.Nur Menschen.
UnverifiedAccount403Die E-Mail des Kontos ist nicht bestätigt.Bestätige die E-Mail.
EmailFailed500Die E-Mail ließ sich nicht senden.Versuche es später.
InvalidToken401Link oder Code sind falsch oder abgelaufen.Fordere einen neuen an.
MissingInvite400Dieser Server braucht eine Einladung zur Anmeldung.Nur Menschen.
InvalidInvite400Die Einladung ist falsch.Fordere eine neue an.
CompromisedPassword400Das Passwort steht auf einer Liste geleakter Passwörter.Wähle ein anderes.
ShortPassword400Das Passwort ist zu kurz.Wähle ein längeres.
LockedOut403Zu viele fehlgeschlagene Anmeldungen.Warte.
TotpAlreadyEnabled400Der Authenticator ist schon an.Nur Menschen.
DisallowedMFAMethod400Diese Prüfung ist hier nicht erlaubt.Nur Menschen.
AgeRequirementNotMet403Das Alter des Kontos reicht dafür nicht.Nur Menschen.
AgeChangeNotAllowed403Das Alter lässt sich nicht ändern.Nur Menschen.
AgeRestricted403Der Inhalt ist altersbeschränkt.Nur Menschen.
TooManyServerEvents400Der Server hat so viele geplante Events, wie er haben darf.Nur für Menschen.
ForwardMatureContent403Eine Nachricht aus einem Kanal für Erwachsene lässt sich nur in einen anderen solchen Kanal weiterleiten.Nur für Menschen: Bots können nicht weiterleiten.

OAuth2-Fehler

POST /oauth2/token folgt dem OAuth2-Standard und antwortet mit error und error_description statt type. Siehe OAuth2.

Weiter